次の方法で共有


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

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

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

既定では、この警告はオフに設定されています。 詳細については、「 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);
};