返回一个对象的纯虚方法

Pure virtual method returning an object?

本文关键字:方法 一个对象 返回      更新时间:2023-10-16

我想做这个纯虚拟方法:

   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。你知道吗?

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

您可以看到,此错误消息表明编译时类型未知。确保在MonMartien申报之前先进行MonLaser申报。如果在同一个头文件中有两个,请确保将MonLaser的声明置于MonMartien的声明之上。如果它在一个单独的文件中,一定要包括头文件。

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

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