You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将对象引用传递给另一个类?编译冲突报错求助

问题分析与解决

编译错误原因

你写的MenuX(alpha4);在C++中会被编译器误解为声明一个名为alpha4的MenuX类型对象,但前面已经定义了Adafruit_AlphaNum4 alpha4,这就导致了同名变量的冲突,触发conflicting declaration错误。

另外,MenuX的构造函数要求传入Adafruit_AlphaNum4*(指针类型),但你直接传了对象alpha4,类型不匹配——即便没有重名问题,这也会引发编译错误。

修正代码

修改main.cpp中的对象创建逻辑:

#include "MenuX.h"
Adafruit_AlphaNum4 alpha4 = Adafruit_AlphaNum4();
// 正确创建MenuX对象:传入alpha4的地址,同时给对象起不冲突的名称
MenuX myMenu(&alpha4);

后续如果需要调用addX方法,直接执行myMenu.addX();即可。

补充说明

  • 构造函数接受指针参数时,必须传入对象的地址(用&取地址),不能直接传递对象本身。
  • 声明类对象时必须指定变量名(比如示例中的myMenu),不能仅写类名加括号,否则会被编译器误解析为函数声明或重复变量声明。

内容的提问来源于stack exchange,提问作者user2570937

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 17:20:35