いくつかの古いコードを調べているときに、次のようなものに出くわしました。
class Base
{
public:
virtual int Func();
...
};
class Derived : public Base
{
public:
int Func(); // Missing 'virtual' qualifier
...
};
コードは警告なし (レベル 4) で正常にコンパイルされ (MS VS2008)、期待どおりに動作しFunc
ます。派生クラスに仮想修飾子がありませんが、仮想です。さて、混乱を招く以外に、このコードには危険がありますか、virtual
それとも修飾子を追加してすべてを変更する必要がありますか?