friend

    5

    3答えて

    私はコードを開発するので、クラスのビルディングブロックのいくつかを、通常はプライベートであるとしても、それらをユニットテストすることがしばしばあります。私のユニットテストがプロジェクトの中にある場合、私はこれを達成するために "Friend"を使うことができ、通常の使用のために関数を非公開にします。しかし、私はむしろ自分のNUnitテストを別のプロジェクトに移したいと思う。私が探している効果をどの

    30

    3答えて

    例: template<class T> class Base { public: Base(); friend class T; }; さて、これは動作しません...これを行う方法はありますか?私は実際にこのような一般的なクラスシーラー作るしようとしている : class ClassSealer { private: friend class Seale

    6

    6答えて

    メンバー関数を「友人機能」として宣言するのはどんなシナリオであろうか?OOP提供の「カプセル化」の中心概念の1つである「友人機能」の正確な目的は何ですか?

    14

    3答えて

    は、私がBaseクラスがあるとします。 class Base { friend SomeOtherClass; }; そしてBaseから継承する別の(異なる)クラスがあります: class AnotherClass : public Base {} は友情が同様に継承されますか?原則として

    3

    4答えて

    クラスが7つ以上のクラスのベースクラスとして動作できないという制限があります。 コンパイル時に上記の規則を適用する方法はありますか? 私はAndrew KoenigのUsable_Lock技法が、クラスが継承されないようにすることを知っていますが、クラスをインスタンス化しようとすると失敗するだけです。これは自分自身を派生させるときにできないのですか? ベースクラスは、誰がその子であるかを知ることが