返回对象的纯虚方法?

时间:2013-03-31 16:43:47

标签: c++

我正在尝试使用这种纯虚方法:

   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。你有什么想法吗?

1 个答案:

答案 0 :(得分:2)

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

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

另外,请确保声明不在类中,因为那时类型将是不可见的,因此类外的任何人都无法访问。

本质上归结为:MonLaser定义在哪里?