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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值