关于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()但是编译器无法识别!

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

原文地址:点击打开链接

  • 4
    点赞
  • 12
    收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页
评论 5
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值