我正在做一個小程序,只是爲了玩類。 我已經做了兩個類,a和b。錯誤:正向聲明,如何訪問指針
我想能夠訪問一個B,反之亦然。 這是我走到這一步:
#ifndef A_HH_
#define A_HH_
#include <string>
class b;
class a
{
private:
string aString;
b* bClass;
public:
a(){aString = "A";}
string getString(){return aString;}
string getBString(){return bClass->bString;}
};
#endif /* A_HH_ */
和b:
#ifndef B_HH_
#define B_HH_
#include <string>
class a;
class b
{
private:
string bString;
a* aClass;
public:
b(){bString = "B";}
string getString(){return bString;}
};
#endif /* B_HH_ */
我希望能夠訪問該指針不只是存儲。 我該怎麼做?
您可以在使用前向聲明頭文件,然後將函數的實現放在一個cpp文件中,您可以在其中包含兩個頭文件。像你一樣以內聯方式進行內聯,要求提供完整的班級結構,因爲循環包含問題,您不能擁有這種班級結構。 –
你是什麼意思?哪個指針?從設計的角度來看,通常不是兩個類具有這種雙向關係的好習慣 –
請注意,循環和/或相互依賴通常被認爲是不好的。所以現在(感謝@RetiredNinja)你知道如何做到這一點,**不要**! :-) –