コンパイラの警告 (レベル 4) C4266

更新 : 2007 年 11 月

エラー メッセージ

'関数' : 仮想メンバ関数用に基本クラス '型' から使用可能なオーバライドはありません。関数は隠されます。

派生クラスは、仮想関数のオーバーロードはすべてオーバーライドしませんでした。

既定では、この警告はオフに設定されています。詳細については、「Compiler Warnings That Are Off by Default」を参照してください。

次の例では C4266 警告が生成されます。

// C4266.cpp
// compile with: /W4 /c
#pragma warning (default : 4266)
class Engine {
public:
   virtual void OnException(int&,int);
   virtual void OnException(int&,int&,int);
};

class LocalBinding : private Engine {
   virtual void OnException(int&,int);
};   // C4266

解決方法 :

// C4266b.cpp
// compile with: /W4 /c
#pragma warning (default : 4266)
class Engine {
public:
   virtual void OnException(int&,int);
   virtual void OnException(int&,int&,int);
};

class LocalBinding : private Engine {
   virtual void OnException(int&,int);
   virtual void OnException(int&, int&, int);
};