有趣的问题,看看大家有什么说法。
class Base
{
public:
Base* pid;
void AddBase(Base* base){
base->pid=this;
}
void test(){
cout<<"this is Base"<<"\n";
}
};
class Derive:public Base
{
public:
void test(){
cout<<"this is Derive"<<"\n";
}
};
class Der:public Base
{
void test(){
cout<<"this is der"<<"\n";
}
};
void main(){
Derive testDerive;
Der testDer;
testDer.AddBase(&testDerive);
testDerive.pid->test();//如何才能调到 Der里的test()? 不用类型转换 不用虚函数。我在基类Base里要怎么改才能实现这样的效果。?
//Base* pid????AddBase(Base* base)//??这几个之间要怎么做
}
我要如何做才能用testDerive.pid->test();这样的方法调到自己想调的函数。
(Base 从一开始设写好后,后以后就不能修改了)我该如何写这个Base 才能使以后继承这个类通过的所有类 通过AddBase (testDer.AddBase(&testDerive); ) 后就可以 testDerive.pid-> 这样来调用 testDer里面的东东呢。