关于c++多文件编程中遇到class has no member named

问题描述是关于自己已经在类中定义了该函数或者变量但是却无法识别
这是为什么?

也许你在使用c++的时候会出现问题:has no member named ‘…’
意思就是类没有成员变量XXA
实际上类是具有成员变量XX的
问题的原因在于工程中定义的变量和系统头文件定义的宏冲突所致:处理类定义之前,发现了同名的宏,导致在编译之前(预处理阶段)把类成员当作宏做了宏体的替换。
解决方案有2个
*

1.//进行宏定义xxx为你所要全局预处理的函数或者数组
#ifdef XXX
#undef XXX
#endif

2.包含对象定义所在头文件于调用系统头文件之前.

这里的XXX在具体情况中可能为GetObject,LoadImage等等

本人具体实现用于第二个
例子如下
类似于我在类中已经定义了getid()但是编译器无法识别!

但是头文件更换顺序后
在这里插入图片描述
编译成功!
第一种类似

原文地址:点击打开链接

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值