c++ error C2079:使用了未定义的class及C2061:语法错误:标识符“xxx”

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

你可能感兴趣的:(c++,class)