【发布时间】:2010-01-21 20:46:30
【问题描述】:
我有一个名为 Packet 的基类:
// Header File
class Packet {
public:
virtual bool isAwesome() const {
return false;
}
}
还有一个名为AwesomePacket的继承类:
// Header File
class AwesomePacket : public Packet {
public:
virtual bool isAwesome() const {
return true;
}
}
但是,当我实例化一个AwesomePacket 并调用isAwesome() 时,该方法返回false 而不是true。为什么会这样?
【问题讨论】:
-
能否包含实例化它的代码并调用该方法?
-
更准确地说:您能否提供一个真实完整的示例,即开箱即用的编译示例。请告诉我们您正在使用哪个编译器,哪些编译器选项处于活动状态等。
-
您不需要为后代(子)类中的方法添加前缀
virtual。 -
Thomas,你是对的,但我发现用 virtual 标记子类中覆盖的方法非常有用 - 很明显这是故意的。
标签: c++ inheritance virtual