【发布时间】:2020-04-12 09:14:52
【问题描述】:
我正在学习虚函数和抽象类,我似乎很难理解某些东西。假设我有这个代码:
class animal {
public:
virtual void show()=0;
};
class dog : public animal {
int weight;
};
int main()
{
//animal a;
dog d;
return 0;
};
我了解动物 a 的不正确之处,因为动物类是抽象的,并且我不允许声明此类的对象。但是,为什么狗d也不对呢? (假设 dog 类不是抽象的,所以我可以声明 dog 对象)
提前致谢!!
【问题讨论】:
-
因为你没有覆盖
show所以dog也是抽象的 -
“鉴于 dog 类不是抽象的,所以我可以声明 dog 对象” 这是一个不正确的假设。
dog也有一个纯虚拟的show()继承自animal。 -
好吧,我超越了节目,一切都很顺利。非常感谢!!!
标签: c++ inheritance abstract-class virtual-functions