class Class1
{
public:
void print()
{
cout << "test" << endl;
}
void printl()
{
print();
}
};
class Class2 : public Class1
{
public:
void print()
{
cout << "test2" << endl;
}
};
为什么 print() 在 Class2 中没有被覆盖,有什么方法可以像这样覆盖函数吗? (没有虚函数)。谢谢
Class2 t;
t.printl();
最佳答案
没有。这就是虚函数的全部原因。
这里没有虚方法,当 printl() 调用 print() 时,它调用 Class1.print()
,打印“test”。如果您将该方法标记为虚拟方法,那么它将按照您的预期进行处理。
关于c++ - 关于继承/方法覆盖 C++ 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2291551/