父类 *指针=new 子类 有可能调用到子类的同名成员么
class father { public: void get(){} };
class son:class father { public: void get(){} }; void main() { father *pf=new son; pf->get()//肯定是输出父亲的get 。如果像输出子的get 有这个可能吗? }
class father { public: <SPAN style="COLOR: #ff0000">virutal</SPAN> void get(){} };
你这里涉及到一个理论上的概念,叫多态 它在C++中的具体叫法叫虚函数,以及在派生类中重写虚函数
有,模板。WTL常见
template <class T> class Father { public: void Do(){ cout<<"Father"<<endl; } void Get(){ T* t = (T*)this; t->Do(); } };
class Son : public Father<Son> { public: void Do(){ cout<<"Son"<<endl; } };
Father<Son>* f = new Son; f->Get();
|