私は初心者レベルのオブジェクト指向プログラミング愛好家です。私は、次のパズルに遭遇している:クラスの友情 - パズル
class A {
};
class B {
protected:
friend class A;
};
class C {
public:
friend class B;
};
は、上記のクラスはデータメンバを持っていたと仮定すると、上記のサンプルコードを参照し、Cのメンバーの何名がAのメンバーの宣言で使用されるだろうか?
だけのプライベートメンバー
だけ保護メンバー
Cのデータメンバのすべて
パブリックメンバーしかCのデータメンバの
なし*
私の選択は、友情は推移的ではないので、答え4です。したがって、AはBの友人ですが、AはCの友人ではありません(BはCの友人です)。 正しい考えですか?
また、私の問題は、これまで(チュートリアルで)私は友情が、このように宣言されたexmaples会ったということです。
class X {
public:
friend class Y;
};
代わりに公共指定子の私たちが使用した場合の違いは何です保護されたもの?そのような:
class X {
protected:
friend class Y;
};
+1よく質問された質問です。 – jrok