【发布时间】:2023-03-12 00:59:02
【问题描述】:
抱歉,也许我应该以更好的方式重写我的问题。
我有一个基类名称ABC,它具有函数名称。
void saysez(ostream &os) const // this is NOT virtual!!
{ os << sez; }
还有派生类名DEF也有函数名
void saysez(ostream &os) const { os << extra << " ";
scary::saysez(os);
所以我们可以从上面的代码中看到两者具有相同的签名。
据我了解,如果没有指定 virtual 关键字,它应该使用基类函数,但在我的演练实践中,输出结果证明它使用的是派生函数。
所以我想知道为什么它使用派生函数而不是基函数?
下面是来自int main的电话
w.saysez(cout); cout << '\n';
w 是派生类的对象。
下面是带有输出的截断代码的链接
【问题讨论】:
-
请正确格式化您的代码。目前情况很糟糕。
-
抱歉,我现在要重新格式化它们。
-
I have a question on the last line of the output- 那么你应该单独提供相关代码,因为剩下的只是噪音。 -
@amit 如果这些都没有帮助,我会删除?
-
@Ali:您应该提供描述手头问题的最少可编译代码 - 这可能会为您提供更准确和更好的答案。
标签: c++ inheritance virtual