adamzhl 2023-02-21 11:35 采纳率: 64.7%
浏览 142
已结题

c++值传递,多个class值的引用

C++值传递
damo.h

typedef struct DoInfo {...}
typedef struct ReInfo {...}
typedef struct PrInfo {...}
class model{
const DoInfo& getDoInfo();//获取DoInfo中的数据

const ReInfo& getReInfo();

const PrInfo& getPrInfo();
}

acoe.h

#include "damo.h"
clas core{
model _model;
...
}
//获取所有_model中的数据

//需要acoe.h文件把_model数据传到cust.h文件中,类cusA和cusB都需要访问_model数据,
//不采用 把model 声明成单例直接调用,extern model实例也不用
cust.h

//cust.h文件不能直接 #include "damo.h"
//acoe.h文件获取damo.h中的数据_model,这一步好实现
//主要是初始化时acoe.h文件把_model传到cust.h文件,cusA和cusB都可以使用传进来的这些数据
class  cusA{...}
class  cusB{...}


  • 写回答

10条回答 默认 最新

  • 「已注销」 2023-02-21 11:48
    关注

    参考GPT和自己的思路,可以将_model作为参数分别传递给cusA和cusB的构造函数,或者设置对应的set函数,让cusA和cusB在使用_model数据之前,先通过构造函数或set函数将_model传递进来。

    例如,在cusA中可以这样实现:

    #include "damo.h"
    #include "acoe.h"
    
    class cusA {
    public:
        cusA(const model& modelRef) : _model(modelRef) {}
        void someFunction() {
            const DoInfo& doInfo = _model.getDoInfo();
            const ReInfo& reInfo = _model.getReInfo();
            // 使用获取到的数据
        }
    private:
        const model& _model;
    };
    

    在acoe.h中,创建cusA对象时将_model传递进去:

    #include "cust.h"
    
    class acoe {
    public:
        acoe() {
            cusA cusAInstance(_model);
            cusB cusBInstance(_model);
            // 使用cusAInstance和cusBInstance
        }
    private:
        model _model;
    };
    

    cusB的实现与cusA类似,这里不再赘述。
    如果对您有帮助,请给与采纳,谢谢。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(9条)

报告相同问题?

问题事件

  • 系统已结题 3月1日
  • 已采纳回答 2月21日
  • 赞助了问题酬金20元 2月21日
  • 修改了问题 2月21日
  • 展开全部

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测