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 回答