我在VSTS 2008中使用原生C ++。关于虚函数的快速问题。在下面的示例中,如果我在类Derived中将Foo声明为“virtual void Foo()”或“void Foo()”,则会有任何差异吗?对将来自类Derived的任何未来类的影响?
class Base
{
public:
Base()
{
}
virtual void Foo()
{
cout << "In base" << endl;
}
};
class Derived : public Base
{
public:
Derived()
{
}
void Foo()
{
cout << "In derived " << endl;
}
};
答案 0 :(得分:9)
没有区别。但为了便于阅读,我始终保持virtual
。
答案 1 :(得分:4)
不,只要它与基类中的成员函数具有相同的签名,它就会自动变为虚拟。但是,您应该明确地将其设置为虚拟,以避免混淆任何阅读代码的人。