作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
也许我错了,但这似乎是一个非常基本的问题。突然间,我的继承链停止了工作。编写一个小的基本测试应用程序证明是我错了(所以我不能责怪编译器)。
我有一个基类,在虚函数中具有默认行为。子类从中派生并改变行为。
#include <iostream>
class Base
{
public:
Base() { print(); }
~Base() {}
protected:
virtual void print() { std::cout << "base\n"; }
};
class Child : public Base
{
public:
Child() {}
~Child() {}
protected:
virtual void print() { std::cout << "child\n"; }
};
int main()
{
Base b;
Child c;
}
这打印:
base
base
创建 Child 实例时,为什么会调用 Base::print()?我想通过使用 virtual 关键字,可以为派生类替换函数。
我什么时候把自己弄糊涂了?
最佳答案
你在构造函数中调用了一个虚方法,它不会起作用,因为子类还没有完全初始化。
关于c++ - 从构造函数调用虚函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/507043/
我有一个特别的问题想要解决,我不确定是否可行,因为我找不到任何信息或正在完成的示例。基本上,我有: class ParentObject {}; class DerivedObject : publi
在我们的项目中,我们配置了虚 URL,以便用户可以在地址栏中输入虚 URL,这会将他们重定向到原始 URL。 例如: 如果用户输入'http://www.abc.com/partner ',它会将它们
我是一名优秀的程序员,十分优秀!