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;"即可。