我有一类指向数据存储成员类(输入):
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()方法中时,无法使用指针表示法访问属于Calc类的成员的input对象中的天气类吗?
input->weather //does not work
点符号也不起作用(我不认为这会起作用,因为没有链接通过引用传递给此处)。
input.weather //does not work
我想念什么?
编辑:对不起!我忘了提到Calc类已经是Inputs类的
friend class
了。 最佳答案
您已将weather
定义为Inputs
的私有(private)成员,因此Calc
对象不可见。您有3种选择:
weather
。 Calc
成为Inputs
的 friend 。 weather
创建一个 setter/getter 方法(推荐使用,因为它可以改善封装性)关于c++ - 访问指向存储另一个成员类的指针的成员类的指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32304225/