我试图覆盖抽象基类的所有方法,但并没有像看起来那样得到所有方法。
我使用 msbuild 构建项目,该项目是由 cmake 生成的。
MSVC++ 2012 编译器抱怨错误error C2259: 'Derived' : cannot instantiate abstract class
。
所以问题是,如何强制编译器告诉我缺少的方法名称该类不再是抽象的(并且所有方法都已指定)?
我试图覆盖抽象基类的所有方法,但并没有像看起来那样得到所有方法。
我使用 msbuild 构建项目,该项目是由 cmake 生成的。
MSVC++ 2012 编译器抱怨错误error C2259: 'Derived' : cannot instantiate abstract class
。
所以问题是,如何强制编译器告诉我缺少的方法名称该类不再是抽象的(并且所有方法都已指定)?
查看输出窗口,而不是错误列表。例如,我的错误列表说:
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 错误消息提供了后续行的详细信息,不幸的是,这些错误消息通常不会进入错误列表。