【发布时间】:2015-01-22 11:31:54
【问题描述】:
class A;
{
private:
int a;
public:
virtual int getV() { return a; }
} a;
class C : public A;
{
private:
int c;
public:
int getV() { return c; }
} c;
class D
{
public:
A* liste;
} d;
可以为 liste 分配内存,并且 A::a 和 C::c 保存值。现在,如果我将 c 放入 D::liste[0] 并用
cout << d.liste[0].getV();
它打印 A::a。尽管我将 A::getV() 声明为虚拟,为什么它不打印出 C::c?
【问题讨论】:
标签: c++ polymorphism virtual member