class Class1
{
public:
void print()
{
cout << "test" << endl;
}
void printl()
{
print();
}
};
class Class2 : public Class1
{
public:
void print()
{
cout << "test2" << endl;
}
};
Run Code Online (Sandbox Code Playgroud)
为什么print()不会在Class2中被覆盖,是否有任何方法可以像这样覆盖一个函数?(没有虚函数).谢谢
Class2 t;
t.printl();
Run Code Online (Sandbox Code Playgroud)
Ree*_*sey 10
不.这是虚拟功能的全部原因.
如果没有虚拟方法,当printl()调用print()时,它会调用Class1.print(),打印"test".如果您将方法标记为虚拟,那么它将按您的预期处理它.