コンパイラの警告 (レベル 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);
};