gpt4 book ai didi

c++ - 访问指向存储指向另一个成员类的指针的成员类的指针

转载 作者:行者123 更新时间:2023-11-30 02:36:50 25 4
gpt4 key购买 nike

我有一个指向数据存储成员类(输入)的类:

class Calc
{
public:
Calc(Inputs *input) : input(input) {}
void performCalc();
private:
Inputs *input;
};

在 Inputs 类中,我存储各种数据输入:

class Inputs
{
public:
Inputs(std::string &directory, LogFile &log);
~Inputs();

private:

WriteLogFile &writeToLog;
WeatherData *weather;
EvaporationData *evaporation;

friend class Calc;

}

现在,当我在 performCalc() 方法中时,我无法访问 inputs 对象中的天气类,它是使用指针表示法的 Calc 类的成员?

input->weather    //does not work

点符号也不起作用(我不认为它会起作用,因为这里没有通过引用传递链接。)

input.weather    //does not work

我错过了什么?

编辑:抱歉!我忘了提及 Calc 类已经是 Inputs 类的 友元类

最佳答案

您已将 weather 定义为 Inputs 的私有(private)成员,因此它对您的 Calc 对象不可见。您有 3 个选择:

  1. 公开天气
  2. Calc 成为 Inputs 的 friend 。
  3. weather 创建一个 getter 方法(推荐,因为它改进了封装)

关于c++ - 访问指向存储指向另一个成员类的指针的成员类的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32304225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com