問題タブ [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.
c# - 友達/内部を排除するのに役立ちます
「友達/内部が必要な場合はデザインが間違っている」などとよく言われますが、ChessPiece.Locationの内部を削除するために次のコードを再設計する方法を教えてもらえますか?
これは現在、ChessBoardにピースを追加すると、ChessPiece.Locationプロパティが一致するように設定されるように使用されています。明らかに、パブリックにすることは内部よりも悪く、プライベートにすることでChessBoardがロケーションを更新できなくなります。洞察をありがとう。
c++ - フレンド機能
Friend Functionsの例で
は、次のことはどのように正しいでしょうか?
「duplicate() の宣言でも main() でのその後の使用でも、duplicate をクラス CRectangle のメンバーと見なしていないことに注意してください。そうではありません! メンバーでなくても、単にプライベートおよび保護されたメンバーにアクセスできます。 "
CRectangle の public セクションで重複が宣言されています。メンバー関数ではなく、set_values はどうですか?
これは良い例ですか?そうでない場合、より良いものはありますか?
c++ - テンプレート友情
異なるテンプレート パラメーターを使用して、テンプレート クラスの保護された変数にアクセスしようとしています。テンプレート パラメーターを使用したフレンド宣言により、次のエラーが発生します。
複数のテンプレート パラメータ リストは許可されていません
私のコードは
保護と友人の宣言を削除すると、機能します。
xml - VB.net での XML シリアライズ フレンド クラス
VB.net (2005) にいくつかのクラス (約 15 程度) があり、それらを xml にシリアル化できるようにしたいと考えています。残念ながら、それらはフレンド クラスとしてラベル付けされており、アセンブリの外部に公開することはできません。
アセンブリは、CAD システムへの com 相互運用プラグインである dll です。すべてのクラスをフレンドとして設定して、サード パーティの使用のためにアセンブリの外部に公開されないようにしました。私もそれをする必要があるかどうか疑問に思っています。クラスをパブリックに設定すると、物事をシリアライズできます。ただし、人々がアセンブリにリンクしてクラスを使用することは望ましくありません。
自分のアセンブリにリンクしている他のプログラムについても心配する必要がありますか? 実際、これが起こる可能性はあまりないと思います。ほとんどすべてのクラスにパブリック スコープを設定するという考えは好きではありません。
フレンドクラスをシリアライズ可能にする方法はありますか? それとも、私は物事を公開する必要がありますか?
乾杯、トロイ
c++ - フレンドクラスとそのすべての子孫
いくつかのサブクラス(B、C、およびD)を持つクラスAがあるとします。クラスEの保護されたメンバーにアクセスするには、BCとDが必要です。EのB、C、Dの友達を、すべてをリストしなくても1回のヒットで作成することはできますか?
私は試しました:
しかし、これは機能しません。
ありがとうございました
c# - assembly:InternalsVisibleTo 属性の「AllInternalsVisible」パラメータとは何ですか?
私の IntelliSense は、ブール値の名前付きパラメーター "AllInternalsVisible=" を[assembly:InternalsVisibleTo("AssemblyName")]
宣言で作成しています。2 番目の二重引用符の後にカーソルを置き、Ctrl-スペースを押します。それは何ですか-MSDNでそれに関するドキュメントが見つかりません。VS2005 と .Net 2.0 を使用しています。
関連するトピックとして、私はフレンド アセンブリについていくつかの調査を行っていますが、フレンド アセンブリに内部へのアクセスを許可すると、フレンド アセンブリはすべての内部にアクセスできるようになり、それについて詳細を把握することはできないと考えました。それは本当ですか、またはすべてではなく一部の内部型/メンバーへのアクセスをフレンド アセンブリに許可する方法 (上で提案したように) はありますか?
c++ - pimplイディオムとテンプレートクラスの友達
pimplイディオムを使用して、汚れたテンプレートコードを非表示にしようとしていますが、bodyクラスのフレンドの派生クラスにハンドルクラスへのアクセスを許可できません。MSVC9sp1からエラーC2248が発生します。エラーを複製するためのコードは次のとおりです。
助けていただければ幸いです。私の質問から明らかでない場合は、ユーザーから実装を隠そうとしてinterface::body
います。specific_body
interface
selector - fb:dialog の FBML マルチ フレンド セレクター
マルチ フレンド セレクター ウィジェット (fb:multi-friend-selector) を fb:dialog に表示する方法はありますか?
友達セレクターポップアップを表示したいボタンを選択すると、ユーザーは友達に招待を送ることができます。メイン ページでフレンド セレクターを動作させましたが、そのウィジェットを fb:dialog に表示する方法がわかりません。
ありがとう水差し
c++ - 友情スコープc++
「C++プログラミング言語」のセクション11.5.1で、BjarneStroustrupは次のように書いています。
メンバー宣言と同様に、フレンド宣言は名前を囲んでいるスコープに導入しません。
例えば:
大規模なプログラムや大規模なクラスの場合、クラスがそれを囲むスコープに「静かに」名前を追加しないのは良いことです。多くの異なるコンテキストでインスタンス化できるテンプレートクラス(第13章)の場合、これは非常に重要です。
ただし、次のセクションでは、クラスが以前に定義されているか、フレンドを宣言しているクラスをすぐに囲む非クラススコープで定義されている必要があることを説明します。
私の質問は、クラスが以前に定義されているか、クラスをフレンドと宣言しているクラスをすぐに囲む非クラススコープで定義されている必要があるため、最初の例でXform
は、おそらくクラスがスコープ外になることはありません。Matrix
クラスの定義の前に定義されています。さらに、フレンドクラスを事前に定義するか、付与者のクラスの直後に定義する必要があるという制限があるため、フレンドクラスがスコープに含まれないという状況は考えられません。
第二に、このセクションでのBjarneの私の解釈は正しいですか?
- フレンドクラスの場合のみ、フレンドクラスは、囲んでいるスコープで事前に定義されているか、非クラススコープの直後に定義されている必要があります。
- 関数の場合、囲んでいるスコープで事前に宣言されている必要があります。または、タイプ=='フレンドシップ付与者の'クラスの引数を持つことによっても見つけることができますか?
c++ - ベクター要素をキーで消去する
以下を定義し、要素で埋めました。
しかし、特定のキーを持つ要素を削除したい...
しかし、それは私を許可しません。そのキーに割り当てられた要素を適切に破棄するにはどうすればよいですか?