問題タブ [friend]

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 投票する
4 に答える
159 参照

c# - 友達/内部を排除するのに役立ちます

「友達/内部が必要な場合はデザインが間違っている」などとよく言われますが、ChessPiece.Locationの内部を削除するために次のコードを再設計する方法を教えてもらえますか?

これは現在、ChessBoardにピースを追加すると、ChessPiece.Locationプロパティが一致するように設定されるように使用されています。明らかに、パブリックにすることは内部よりも悪く、プライベートにすることでChessBoardがロケーションを更新できなくなります。洞察をありがとう。

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

c++ - フレンド機能

Friend Functionsの例で
は、次のことはどのように正しいでしょうか?

「duplicate() の宣言でも main() でのその後の使用でも、duplicate をクラス CRectangle のメンバーと見なしていないことに注意してください。そうではありません! メンバーでなくても、単にプライベートおよび保護されたメンバーにアクセスできます。 "

CRectangle の public セクションで重複が宣言されています。メンバー関数ではなく、set_values はどうですか?

これは良い例ですか?そうでない場合、より良いものはありますか?

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

c++ - テンプレート友情

異なるテンプレート パラメーターを使用して、テンプレート クラスの保護された変数にアクセスしようとしています。テンプレート パラメーターを使用したフレンド宣言により、次のエラーが発生します。

複数のテンプレート パラメータ リストは許可されていません

私のコードは

保護と友人の宣言を削除すると、機能します。

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

xml - VB.net での XML シリアライズ フレンド クラス

VB.net (2005) にいくつかのクラス (約 15 程度) があり、それらを xml にシリアル化できるようにしたいと考えています。残念ながら、それらはフレンド クラスとしてラベル付けされており、アセンブリの外部に公開することはできません。

アセンブリは、CAD システムへの com 相互運用プラグインである dll です。すべてのクラスをフレンドとして設定して、サード パーティの使用のためにアセンブリの外部に公開されないようにしました。私もそれをする必要があるかどうか疑問に思っています。クラスをパブリックに設定すると、物事をシリアライズできます。ただし、人々がアセンブリにリンクしてクラスを使用することは望ましくありません。

自分のアセンブリにリンクしている他のプログラムについても心配する必要がありますか? 実際、これが起こる可能性はあまりないと思います。ほとんどすべてのクラスにパブリック スコープを設定するという考えは好きではありません。

フレンドクラスをシリアライズ可能にする方法はありますか? それとも、私は物事を公開する必要がありますか?

乾杯、トロイ

0 投票する
1 に答える
1150 参照

c++ - フレンドクラスとそのすべての子孫

いくつかのサブクラス(B、C、およびD)を持つクラスAがあるとします。クラスEの保護されたメンバーにアクセスするには、BCとDが必要です。EのB、C、Dの友達を、すべてをリストしなくても1回のヒットで作成することはできますか?

私は試しました:

しかし、これは機能しません。

ありがとうございました

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

c# - assembly:InternalsVisibleTo 属性の「AllInternalsVisible」パラメータとは何ですか?

私の IntelliSense は、ブール値の名前付きパラメーター "AllInternalsVisible=" を[assembly:InternalsVisibleTo("AssemblyName")]宣言で作成しています。2 番目の二重引用符の後にカーソルを置き、Ctrl-スペースを押します。それは何ですか-MSDNでそれに関するドキュメントが見つかりません。VS2005 と .Net 2.0 を使用しています。

関連するトピックとして、私はフレンド アセンブリについていくつかの調査を行っていますが、フレンド アセンブリに内部へのアクセスを許可すると、フレンド アセンブリはすべての内部にアクセスできるようになり、それについて詳細を把握することはできないと考えました。それは本当ですか、またはすべてではなく一部の内部型/メンバーへのアクセスをフレンド アセンブリに許可する方法 (上で提案したように) はありますか?

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

c++ - pimplイディオムとテンプレートクラスの友達

pimplイディオムを使用して、汚れたテンプレートコードを非表示にしようとしていますが、bodyクラスのフレンドの派生クラスにハンドルクラスへのアクセスを許可できません。MSVC9sp1からエラーC2248が発生します。エラーを複製するためのコードは次のとおりです。

助けていただければ幸いです。私の質問から明らかでない場合は、ユーザーから実装を隠そうとしてinterface::bodyいます。specific_bodyinterface

0 投票する
1 に答える
8661 参照

selector - fb:dialog の FBML マルチ フレンド セレクター

マルチ フレンド セレクター ウィジェット (fb:multi-friend-selector) を fb:dialog に表示する方法はありますか?

友達セレクターポップアップを表示したいボタンを選択すると、ユーザーは友達に招待を送ることができます。メイン ページでフレンド セレクターを動作させましたが、そのウィジェットを fb:dialog に表示する方法がわかりません。

ありがとう水差し

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

c++ - 友情スコープc++

「C++プログラミング言語」のセクション11.5.1で、BjarneStroustrupは次のように書いています。

メンバー宣言と同様に、フレンド宣言は名前を囲んでいるスコープに導入しません。

例えば:

大規模なプログラムや大規模なクラスの場合、クラスがそれを囲むスコープに「静かに」名前を追加しないのは良いことです。多くの異なるコンテキストでインスタンス化できるテンプレートクラス(第13章)の場合、これは非常に重要です。

ただし、次のセクションでは、クラスが以前に定義されているか、フレンドを宣言しているクラスをすぐに囲む非クラススコープで定義されている必要があることを説明します。

私の質問は、クラスが以前に定義されているか、クラスをフレンドと宣言しているクラスをすぐに囲む非クラススコープで定義されている必要があるため、最初の例でXformは、おそらくクラスがスコープ外になることはありません。Matrixクラスの定義の前に定義されています。さらに、フレンドクラスを事前に定義するか、付与者のクラスの直後に定義する必要があるという制限があるため、フレンドクラスがスコープに含まれないという状況は考えられません。

第二に、このセクションでのBjarneの私の解釈は正しいですか?

  • フレンドクラスの場合のみ、フレンドクラスは、囲んでいるスコープで事前に定義されているか、非クラススコープの直後に定義されている必要があります。
  • 関数の場合、囲んでいるスコープで事前に宣言されている必要があります。または、タイプ=='フレンドシップ付与者の'クラスの引数を持つことによっても見つけることができますか?
0 投票する
4 に答える
2265 参照

c++ - ベクター要素をキーで消去する

以下を定義し、要素で埋めました。

しかし、特定のキーを持つ要素を削除したい...

しかし、それは私を許可しません。そのキーに割り当てられた要素を適切に破棄するにはどうすればよいですか?