私はクラスがあります。へのアクセスのプライベートメンバーは
class A
{
private:
ComplexClass member1;
public:
getMember1(){return member1;};
};
を、私は、それに取り組むために、そのメンバー1を取得するために必要なコードの簡略化のために(より簡単に理解できる)、という実装を持っています。私の心に来る最初の事は次のようになります。私は、新しいオブジェクトからではなくメンバー1からのポインタを取得(およびコンパイラの警告を取得します)していますので、明らかに正しくない
ComplexClass *myComplexClass = &getMember1();
myComplexClass.getSomething();
myComplexClass.getSomethingElse();
etc.
。
私の質問です:このようなことをするには最高のデザインは何ですか?どのようにカプセル化を維持し、それにポインタを使用してメンバーのアクセスを容易にするのですか? (私はmember1からのみ読み込み、書き込みはしません)。
私はクラスAの内部
ComplexClass *getPointerToMember1()
を作るべきか?
'ComplexClass myComplexClass = a.getMember1(); myComplexClass.getSomething(); '? –
あなたはたぶんゲッターを追加してはいけません。外部エンティティがメンバー1へのアクセスを必要とするのはなぜですか?これは唯一のエンティティですか?もしそうなら、それを友人にしてください。 –