friend

    -2

    2答えて

    私のクラスのファクトリ以外のクラスの型を構築することを避けたい。私はそのクラスをパブリック・インターフェースにする必要がありますが、その作成をその工場だけに制限したいと考えています。それ、どうやったら出来るの? クラスCarと工場CarFactoryとしましょう。ここでfriendを使用して工場出荷時にすべてのプライベートメンバーを公開することなくこれを行う方法の私の最初のアイデアは、次のとおりで

    3

    3答えて

    私は、ラムダ関数のコンストラクタで引数として取るクラスを作成しようとしていました。この関数をクラスと友人にしたいと思っています。クラスのコードは次のようになります。 using func = std::function<void(void)>; class foo { public: foo(func f) { this->f = f; }

    1

    2答えて

    を与えながら、私が打ち鳴らす上でコンパイルするために、次のコードを取得しようとしていますが、それは次のエラーで失敗します。私は、Visual Studioをコンパイルしようとした error: no member named 'operator<' in the global namespace 標準準拠に切り替えるには/ Zaを使用しますが、まだそれを受け入れているようです。私を啓発してくだ

    3

    3答えて

    プライベートフィールドのテストを有効にするために、私はテストクラスのクラスに友達として名前をつけました。私はクラスの名前が存在のために確認されていないことに気づいた。それは意図によるのか?

    4

    1答えて

    クラスB<certain X>は、すべてC<any,certain X>と友人になりたいと考えています。 私はそれをする方法を見つけるために私の髪を引っ張っています。 以下は、問題のある行を追加しない限り正常にコンパイルされた完全なコードです。ここで #include <string> using namespace std; enum EN{ EN1,EN2 }; template<EN

    3

    1答えて

    私のプロジェクトの1つに、総称タイプTの値を含むツリーデータ構造があります。 コンパイル時間と依存性を減らすため、実装の詳細をツリーノードクラスNodeからクラスNodeImplに移動しようとしました。 Nodeの内部はプライベートであり、定義されたエントリポイント、例えばgetName機能によってのみアクセスされる必要があります。 getNameを使用することに興味のある人だけが、NodeImp

    0

    1答えて

    私の理解では、新しいものオペレータである私が使用しているパラメータを使用して宣言するとき...(テンプレート化することはできません(size_tの) 以下は、他のプラットフォーム上でMINGW32とDUE Arduinoの上OKコンパイルではなく、例えばLinuxの。 はMINGW32にバグがあるのか​​、これはあまりにも他のターゲット上で許可する必要があります?私はMingwを最新のものに更新

    0

    2答えて

    friendクラス内でテストクラスをインスタンス化することができません。このスコープで宣言されていないエラーptrをスローしています。私は、友人の機能は、クラスのすべてのプライベートとパブリックメンバーにアクセスできると信じていますが、私はこのエラーが発生しています。私はどこに間違っているのか理解できません。 #include<iostream> using namespace std; c

    0

    1答えて

    私は次のコードを持っている:G ++収率でコンパイル #include <iostream> class A { private: int a; public: void setA(int a_); friend int B::getA(); }; class B : public A { public: int