問題タブ [friend-class]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
7 に答える
52331 参照

c# - Cシャープの「友達」キーワードに相当するものは何ですか?

Cシャープの「友達」キーワードに相当するものは何ですか?

「内部」キーワードはどのように使用しますか?

「internal」キーワードは C# の「friend」の代わりであると読みました。

ソース コードがある C# プロジェクトで DLL を使用していますが、既存のコードを変更したくありません。私はクラスを継承しており、継承したクラスを好きなように使用できます。問題は、親クラスのほとんどのコードに保護されたメソッドがあることです。フレンドを使用すると、これらの保護されたメソッドにアクセスしたり呼び出したりできるようになりますか?

0 投票する
6 に答える
4394 参照

c++ - フレンドクラスを使用するのか、C ++での単体テストにアクセサーを追加するのか?

テストクラスを友達にするのではなく、ユニットテスト用にオブジェクトの内部状態を返す関数を追加する方が良いですか?-特に、単体テストの場合を除いて、機能を使用しない場合。

0 投票する
3 に答える
289 参照

c++ - C++ で友情を継承しますか?

クラスの友情は C++ では継承されないため、それを「偽造」する最善の方法は何ですか?

継承される基本クラスの保護されたメソッドを介して、フレンド クラスのプライベート インターフェイスを公開することを考えていましたが、同じインターフェイスを 2 回記述 (および維持) する必要があります。

他の方法はありますか?

0 投票する
6 に答える
5788 参照

c# - C#フレンドクラスとOOPコンポジション

生データのセットを含むクラスAと、そのデータの再編成されたバージョン(GUI対応)を含むクラスBがある場合、Aの生データをBで表示したいと思います。

明らかに、クラスAの生データはプライベートメンバーに含まれています。C ++のフレンドクラスメソッドに似たものを使用して、そのデータをBで表示できるようにしたいと思います。

どうすればこれにアプローチできますか?

ありがとうございました。

0 投票する
3 に答える
75012 参照

c++ - 「フレンド」関数と << 演算子のオーバーロード: クラスの演算子をオーバーロードする適切な方法は何ですか?

私が取り組んでいるプロジェクトでは、Score以下で定義されているクラスがありますscore.h。私はそれをオーバーロードしようとしているので、<<操作が実行される_points + " " + _nameと出力されます。

これが私がやろうとしたことです:

返されるエラーは次のとおりです。

(このエラーは実際には 4 回表示されます)

オーバーロードをフレンド関数として宣言することで、なんとか機能させることができました。

またScore::、score.cpp の関数宣言から を削除します (事実上、メンバーとして宣言しません)。

なぜこれは機能するのに、前のコードは機能しないのですか?

御時間ありがとうございます!

編集

ヘッダーファイルのオーバーロードへの言及をすべて削除しました...それでも、次の(そして唯一の)エラーが発生します。binary '<<' : no operator found which takes a right-hand operand of type 'Score' (or there is no acceptable conversion) main() のテストで適切なオーバーロードが見つからないのはなぜですか? (それは含まれていません、私はチェックしました)

以下はフルスコアです.h

0 投票する
8 に答える
4619 参照

java - Javaにフレンドディレクティブがないのはなぜですか?

friendクラスが定義されているパッケージの外部から使用できるメソッドとインスタンス変数をより細かく制御できるようにするために、C++ で使用できるディレクティブを使用せずに Java が設計されているのはなぜだろうと思っていました。

実用的な理由や特定の欠点は見当たりません。これは単なる設計上の問題のようですが、言語に追加しても問題は発生しないようです。

0 投票する
5 に答える
238 参照

c++ - public ネストされたクラスの一部をネストしたクラスだけに見えるようにする

公開する必要があるC ++のネストされたクラスがあります。しかし、そのメソッドの一部を外界から見えるようにし、残りのメソッドを入れ子クラスだけから見えるようにする必要があります。あれは:

innerMethod() を使用する set のメソッドを記述できるようにしたいと考えています。公開すると外部からもアクセスできてしまうので、これは絶対に嫌です。「フレンドクラス設定」をせずにやる方法はありますか?

前もって感謝します!

0 投票する
3 に答える
651 参照

c++ - 多対多の友情で 2 つのテンプレート クラスをリンクする方法は?

次の 2 つのテンプレート クラスがあるとします。

多対多の友情でそれらをリンクするにはどうすればよいですか。たとえば、Second のパラメーター オブジェクトの b を出力するメソッドを First に追加します。

私の質問は明確ですか?

0 投票する
2 に答える
588 参照

c++ - フレンドクラスからのC++アクセスメンバー関数

フレンドクラスからメンバー関数にアクセスする方法はありますか?

重要な場合はgcc4.5.2を使用します

0 投票する
4 に答える
724 参照

c++ - フレンド クラスとアクセサ セクションの定義

クラスをフレンド クラスとして定義する場合、その定義がどのアクセサ セクションに配置されるかは重要ですか。