問題タブ [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.

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

matlab - Matlab のフレンド関数

私はOOP現象を使用してMatlabで作業していますが、ある関数の出力を同じクラスの他の関数に渡すなど、その使用のためだけに友人関数の現象が必要です。これが私のクラスで、 の出力がによって必要とされます。どうすればこれら 2 つの関数を友達にできますか? 他の言語のような機能はありますか?C/C++myClassmyFunc1myFunc2

私のコード:

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

c++ - フレンド テンプレート関数の作成時の予期しないエラー

クラスSortedListのテンプレートを作成しようとしています。<< 演算子をオーバーロードしたいので、クラス内でフレンド関数を宣言しますが、main.cpp をコンパイルしようとするたびに次のエラーが発生します: template-id 'operator<< ... ' does not match anyテンプレート宣言。ここに main.cpp のコードがあります

これはテンプレートクラスの宣言と定義です

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

c++ - 構造体の中で定義されたフレンド演算子を参照できますか?

フレンド演算子のイディオムを使用する:

operator+基本的にforの関数ポインタが欲しいですFoo

Bar私は次のように言うことができます:

ただし、Fooバージョンに対して同じことを行うと、g++ と clang++ から次のように通知されます。

これは本質的に不可能ですか、それとも関数を参照する方法はありますか?

0 投票する
0 に答える
198 参照

c++ - Eclipse フレンドの可視性

Eclipse Kepler に問題があります。ヘッダー ファイルで、クラスとフレンド演算子 <<:

ソースファイルで私はそれを実装します:

コードはコンパイルされて正常に動作しますが、エディターの Eclipse の行に「メンバー関数 'n_' が表示されません」というエラーが表示されます。

関数を Foo.h に実装すると、Eclipse はエラーを表示しません。問題はどれですか?ありがとう!

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

c++ - C++ での I/O 演算子のオーバーロードにフレンド関数を使用する

独学でC++を学んでいます。演算子のオーバーロードを勉強していて、加算と減算の演算子のオーバーロードを理解することができました。しかし、I/O 演算子のオーバーロードは少し混乱します。複素数のクラスを作成しましたが、演算子をオーバーロードしています。

Complex.h の関数プロトタイプ

Complex.cpp の関数

  1. ここでフレンド関数宣言を使用する必要がある理由を (基本的なレベルで) 誰でも説明できますか?
  2. すべての引数と演算子の戻り値の型を参照渡しする必要があるのはなぜですか?
  3. この関数は const を使用しなくても問題なく動作しますが、なぜここで const を使用するのでしょうか。Complex を定数参照として渡す利点は何ですか?
0 投票する
2 に答える
9462 参照

c++ - C ++のフレンド保護メソッド

他のクラスBarで「直接」アクセスする必要があるクラスFooがあります。Bar のメソッド (Foo のフレンド メソッド) が保護されていることを宣言する小さなフレームワークを構築したいと思います。このようにして、Bar の子クラスをいくつか作成することができました。

Gccはそれについて不平を言い、メソッドがパブリックである場合にのみ機能します。

どのようにできるのか?私のコードの例:

GCC メッセージ:

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

c++ - フレンド関数内のオブジェクトからメンバー関数にアクセスする

以下のコードは Distance クラスの一部です。演算子のオーバーロードは、Distance クラスのプライベート メンバーとして宣言されたフレンド関数であり、呼び出しようとしている関数はパブリック メンバーです。この関数は、Distance クラスのメンバー変数を変更しません。

2 つの参照渡しオブジェクト d1 と d2 を一定に保とうとしていますが、コンパイラは、これらの関数がプライベート変数を変更しないにもかかわらず、ConvertToInches 関数または距離クラス内にある任意の関数を呼び出して const プロパティに違反していると言っています。距離クラス内。

d1 と d2 を定数にしない場合、コンパイラは問題ありません。

この関数を呼び出すときに d1 と d2 を一定にする方法と、私が持っているものが機能しない理由を誰かが説明できますか?

ありがとう!

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

c++ - クラス フレンド関数を呼び出すクラス メンバー関数 (すべて同じクラス) 可能性はありますか?

メンバー関数とプライベート データを含むかなり基本的なクラスがありますが、印刷関数をクラス メンバー関数の一部にしないでください。クラスから削除してフレンドとして宣言すると、main.cpp から直接呼び出すと機能しますが、クラス メンバー関数が内部で呼び出すと宣言されません。友達であることでデータにアクセスできることは知っていますが、メンバー関数でデータを利用できるようにするにはどうすればよいでしょうか? 出来ますか?