【发布时间】:2020-06-28 11:42:32
【问题描述】:
我想知道我可以在 c++ 中覆盖非虚函数吗,因为我在玩 c++ 时发现了这个问题 override关键字我的代码如下
class A
{
public:
void say()
{
cout << "From A\n";
}
};
class B : public A {
public:
void say()
override
{
cout << "From B\n";
}
};
但是当我执行代码时,Visual Studio 显示以下错误
'B::say': 带有覆盖说明符“覆盖”的方法没有覆盖任何基类方法
但是当我在 A 类中使用 virtual 关键字时,错误消失了,代码运行完美
【问题讨论】:
-
你做不到是你做不到的一个非常强烈的指标,不是吗?您可能想从the book list 中挑选一些东西。
-
您偶然发现了 virtual 和 non-virtual 类成员之间差异的最实际含义之一。您是否更熟悉 Java?在后者中,所有方法默认都是虚拟的。
标签: c++ overriding