4

抽象基本クラスのすべてのメソッドを上書きしようとしましたが、すべてを取得できませんでした。

私は msbuild でプロジェクトをビルドします。プロジェクトは cmake によって生成されました。

MSVC++ 2012 コンパイラでエラーが発生しますerror C2259: 'Derived' : cannot instantiate abstract class

問題は、クラスがもはや抽象的ではない (そしてすべてのメソッドが指定されている) 欠落しているメソッド名をコンパイラに強制的に通知させるにはどうすればよいかということです。

4

1 に答える 1

5

エラーリストではなく、出力ウィンドウを見てください。たとえば、私のエラーリストには次のように書かれています:

error C2259: 'Derived' : cannot instantiate abstract class

しかし、私の出力は次のように述べています。

1>c:\users\documents\visual studio 2012\projects\testcpp\test.cpp(18): error C2259: 'Derived' : cannot instantiate abstract class
1>          due to following members:
1>          'void Base::bar(void)' : is abstract
1>          c:\users\documents\visual studio 2012\projects\testcpp\test.cpp(8) : see declaration of 'Base::bar'

MSVC エラー メッセージの多くは、後続の行の詳細を示していますが、残念ながら、通常、エラー リストには表示されません。

于 2013-10-10T09:21:23.970 に答える