我有一個類:訪問私有成員
class A
{
private:
ComplexClass member1;
public:
getMember1(){return member1;};
};
,我有,爲了簡化代碼(更容易理解),需要檢索的member1與它合作的實現。這是要我的腦海裏的第一件事是:
ComplexClass *myComplexClass = &getMember1();
myComplexClass.getSomething();
myComplexClass.getSomethingElse();
etc.
這顯然是不正確的,因爲我從獲取一個新的對象的指針,而不是從member1中(並得到一個編譯器警告)。
我的問題是:做這種事情的最佳設計是什麼?我該如何保持封裝,並利用指向它的指針訪問成員? (我只想從member1讀取,而不是寫在它上面)。
我應該做一個
ComplexClass *getPointerToMember1()
A類裏面?
'ComplexClass myComplexClass = a.getMember1(); myComplexClass.getSomething();'? –
你可能不應該添加一個getter開始。爲什麼外部實體需要訪問成員1.這是唯一的實體嗎?如果是這樣,讓它成爲朋友。 –