A
andy_P
Hi,
Is it OK to use "this" pointer stored in base class constructor to
make a polymorphic function calls?
I am doing something like this and expect that derived m() is called
in test().
class T
{
virtual void exec(int a)=0;
};
class Base
{
protected:
static const int Base_a = 10;
class TT : public T
{
Base* owner;
public:
void set_owner(Base* o){owner = o;}
virtual void exec(int a)
{owner->m(a);}
};
TT t;
int _a;
virtual void m(int a)
{_a = a;}
public:
Base(){t.set_owner(this);}
void test()
{
t.exec(Base_a);
}
};
class D : public Base
{
protected:
int _b;
virtual void m(int x)
{_b = x; }
public:
};
int main()
{
D dd;
dd.test();
return 0;
}
Thank you.
Andy.
Is it OK to use "this" pointer stored in base class constructor to
make a polymorphic function calls?
I am doing something like this and expect that derived m() is called
in test().
class T
{
virtual void exec(int a)=0;
};
class Base
{
protected:
static const int Base_a = 10;
class TT : public T
{
Base* owner;
public:
void set_owner(Base* o){owner = o;}
virtual void exec(int a)
{owner->m(a);}
};
TT t;
int _a;
virtual void m(int a)
{_a = a;}
public:
Base(){t.set_owner(this);}
void test()
{
t.exec(Base_a);
}
};
class D : public Base
{
protected:
int _b;
virtual void m(int x)
{_b = x; }
public:
};
int main()
{
D dd;
dd.test();
return 0;
}
Thank you.
Andy.