我有點的一個類的數據存儲部件類(輸入)的成員類:訪問的指針,其存儲一個指針到另一個構件類
class Calc
{
public:
Calc(Inputs *input) : input(input) {}
void performCalc();
private:
Inputs *input;
};
在輸入I類存儲各種數據的輸入:
class Inputs
{
public:
Inputs(std::string &directory, LogFile &log);
~Inputs();
private:
WriteLogFile &writeToLog;
WeatherData *weather;
EvaporationData *evaporation;
friend class Calc;
}
現在,當我在performCalc()方法,我無法訪問我的天氣類中的輸入對象,它是用指針表示法的計算值類的成員?
input->weather //does not work
也沒有點號的工作(這是我沒想到它會,因爲沒有被鏈接按引用傳遞在這裏。)
input.weather //does not work
我缺少什麼?
編輯:對不起!我忘了提及Calc類已經是輸入類的friend class
。
'天氣'在'Inputs'中是私人的,因此除非您聲明類或函數'friend',否則無法從'Inputs'外部訪問。 – skyking