在函数前使用虚拟词virtual的目的是什么?如果我想让子类覆盖父函数,我只需声明相同的函数,如void draw(){}
.
class Parent {
public:
void say() {
std::cout << "1";
}
};
class Child : public Parent {
public:
void say()
{
std::cout << "2";
}
};
int main()
{
Child* a = new Child();
a->say();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出为2.
那么,为什么保留字virtual
在标题中是必要的say()
呢?
谢谢一堆.