問題タブ [friend-function]
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++ - フレンド機能にアクセス
main から Class_D で宣言された関数 friend にアクセスする際にヘルプが必要です。続行するためのガイダンス。
フレンド関数で class_d のプライベート メンバにアクセスするために必要な変更を教えてください。
フレンド機能の特徴を探っています。Class_A.cpp/.h Class_D.cpp/.h と main.cpp を追加しました。
templates - 名前空間とフレンド宣言を使用したテンプレート関数の自動型推定が Clang で機能しない
Linux で Clang 3.3 を使用して C++ コードをコンパイルするのに問題があります。ただし、同じコードは gcc 4.8.2 および Intel Compiler でコンパイルされます。したがって、私のコードが実際に合法であるかどうかを知りたかったのです。通常、私はそのような質問でclangをより信頼しています;)
とにかく、コードフラグメントは次のとおりです。
どう思いますか?Clangのバグとして投稿する必要がありますか、それとも実際には形式が正しくありませんか?
前もってありがとう、ラファエル
c++ - 一致する関数呼び出しエラーがありません
<< 演算子をオーバーロードしようとしていますが、ツリーで作業しているためヘルパー関数を使用したいので、ヘルパー fn. 再帰的にすることができます。しかし、演算子関数からヘルパーを呼び出そうとすると、一致しない関数呼び出しエラーが発生します。
および .h ファイル内
ああ、ここにエラーがあります:
no matching function for call to 'Polynomial::printPoly(Polynomial::Node*&, std::ostream&) const
'
c++ - リンク エラー: undef 参照 - フレンド関数
重要な詳細のみ:
コンパイル:
エラー:
MemRef.h :
MemRef.cpp :
memref_test.cpp :
私は 6 時間頭を悩ませ、グーグル検索と SO を検索しましたが、助けが必要です。ありがとう。
c++ - 構造体の内部に依存する引数の型を持つテンプレート化された構造体のフレンド関数
引数の型が構造内で定義された型から派生するフレンド関数を使用して、テンプレート化された構造を定義したいと考えています。対応する構造体がインスタンス化されている場合、フレンド関数は明示的な型指定なしで呼び出すことができます。
次のアプローチが機能しているようです。
構造体の内部構造に依存しないパラメーター型でフレンド関数を定義すると、次のようにインターフェースと実装を分離することができます。
現在、両方のアプローチを組み合わせることができるかどうか疑問に思っています。次のアプローチは機能しません (clang++ 3.3、g++ 4.8.2、-std=c++11):
テンプレート引数の推定が ::. で機能しないため、最後のアプローチは失敗すると思います。何か案は?
c++ - クラス定義が相互参照するときにフレンドメソッドを宣言する方法は?
A と B の 2 つのクラスを定義したいと考えています。A には、クラス B オブジェクトであり、クラス内で初期化されるデータ メンバーがあります。A には、この B 型データ メンバーの値を取得するメソッドもあり、このメソッドは B のフレンド メソッドとして宣言されます。これが私のコードです。
当然のことながら、クラス A の定義に不明なタイプ B があるため、コンパイルは失敗しました。ソース内の A と B の定義を交換しようとしましたが、結果はさらに悪いものでした。この A と B の間の相互参照の問題を解決する方法はありますか?
c++ - 名前空間をクラスのフレンドとして宣言する
friend
特定の名前空間内で定義されたすべての関数をクラスで作成する方法があるかどうか疑問に思っていましたか?
特に、次のようなクラスがあります。
および名前空間B
は次のとおりです。
B
ここで、名前空間の 5 つの関数すべてをクラスとフレンドにするために、クラス定義に 5 行を記述することは避け、名前空間内で定義されたすべての関数がクラスとフレンドであること (つまり、そのプライベートにアクセスできること)C
をコンパイラに伝えるだけにしたいと思います。メンバー)。B
C
私が推測する簡単な修正は、名前空間をクラスに変更し、関数をその静的メンバーとして定義してから、クラスを classB
のフレンドとして宣言することC
です。しかし、好奇心から、名前空間でもそのようなことが可能かどうか疑問に思っていましたか?
前もって感謝します。