我在VSTS 2008中使用本地C++。關於虛擬功能的一個簡單問題。在我下面的示例中,如果我在派生類中將Foo聲明爲「virtual void Foo()」或「void Foo()」,會有什麼區別?對派生類派生的任何未來類的任何影響?虛擬功能問題
class Base
{
public:
Base()
{
}
virtual void Foo()
{
cout << "In base" << endl;
}
};
class Derived : public Base
{
public:
Derived()
{
}
void Foo()
{
cout << "In derived " << endl;
}
};
是的,沒有區別,但對於沒有編寫代碼來理解發生的事情的人來說更容易。 – anthares 2010-03-11 12:53:01
很酷,問題回答! – George2 2010-03-11 12:53:57
+1表示爲了清晰而始終使用虛擬,即使它不是必需的。 – 2010-03-11 14:51:09