0

我正在尝试执行此纯虚拟方法:

   virtual MonLaser& getLaser() = 0;

但我得到了各种各样的错误:

Error 6 error C2143: syntax error : missing ';' before '&'
Error 5 error C2253: 'MonMartien::getLaser' :
  pure specifier or abstract override specifier only allowed on virtual function
Error 13 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

Error 7 error C2433: 'MonMartien::MonLaser' : 'virtual' not permitted on data declarations

我需要做一个纯虚拟方法,否则我无法访问我的Laser. 你有什么主意吗?

4

1 回答 1

3

在了解到该方法从类中返回自定义类型之后,MonMartien我现在有了不同的理论。

您会看到,此错误消息表明该类型在编译时是未知的。确保您在声明MonLaser之前有声明MonMartien。如果两者都在同一个标​​题中,请确保将声明MonLaser放在MonMartien. 如果它在一个单独的文件中,请确保包含头文件。

此外,请确保声明不在类内,因为这样该类型将不可见,因此类外的任何人都无法访问。

本质上,这一切都归结为:在哪里MonLaser定义?

于 2013-03-31T16:47:08.493 回答