4

我在 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;
    }
};
4

2 回答 2

9

没有不同。但为了便于阅读,我总是保留virtual它。

于 2010-03-11T12:51:25.370 回答
4

不,只要它与基类中的成员函数具有相同的签名,它就会自动变为虚拟。但是,您应该使其显式虚拟化,以避免让阅读代码的人感到困惑。

于 2010-03-11T12:53:17.880 回答