【发布时间】:2014-11-30 21:25:36
【问题描述】:
您能帮我理解为什么我会得到以下输出吗?
Z
代码如下:
#include <iostream>
using namespace std;
class X {
public:
virtual void shout() { cout << "X"; }
};
class Y : public X {
public:
void shout() { cout << "Y"; }
};
class Z : public Y {
public:
void shout() { cout << "Z"; }
};
int main() {
Y *yz = new Z();
yz -> shout();
return 0;
}
【问题讨论】:
-
因为
shout被声明为virtual。
标签: c++ polymorphism virtual-functions