一个关于多态性的很基本的问题
我有三个类,他们的关系如下:
class1
{
public: virtual func()=0;
};
class2:public class1
{
public: func()
{
cout<<"class2"<<endl;
}
};
class3:public class1
{
public: func()
{
cout<<"class3"<<endl;
}
}
然后有函数 test:
void test()
{
class1 *c = (class1) new class2;
class3 *d = (class3 *) c;
d->func();
}
结果输出的是:
class2;
为什么输出的不是 class3 呢?