c++ error C2079:使用了未定义的class及C2061:语法错误:标识符“xxx”
C2017:使用了未定义的class:问题出现的原因:当一个类A中需要使用另外一个类B作成员变量的时候,被用作成员变量的类B必须是已经定义的,否则A在构造时无法确定所需的内存空间。
·
error C2079:使用了未定义的class:
问题出现的原因:
当一个类A中需要使用另外一个类B作成员变量的时候,被用作成员变量的类B必须是已经定义的,否则A在构造时无法确定所需的内存空间。
思路:
如果类B是在另外一个头文件B.h中定义的,在A.h中#include"B.h"有时也是不能解决问题的,如果在A的定义前加上"class B;",也只是对B进行了声明而非定义,A依然不知道以B为数据类型的成员变量需要多少内存空间。
目前我的解决办法是把A中的相应成员变量的数据类型设置为B*,因为指针的大小是恒定的,在64位系统中为4字节,所以这时A的空间大小是已知的,就不会引起错误。
解决办法:
①在A.h中#include"B.h"
②在A的定义前声明B,即"class B;"
③在A的定义中把B改成B*
C2061:语法错误:标识符“xxx”:
问题出现的原因:在标识符声明前使用了该标识符
解决办法:在使用标识符前进行声明即可,例如是类A的话,声明"class A;"即可。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)