答えて
逆に等価であり、それはない必要にel
するためのものです参照を返します。次の例を考えてみましょう。
#include <iostream>
struct A {
A& operator=(float f) {
std::cout << "hey: " << f << std::endl;
}
};
struct BR {
A el(int j, int k) {
return A();
}
float el(int i, int j, int k) {
return 4.2;
}
};
int main() {
BR buf_right, block;
int i = 0, j = 0, k = 0;
buf_right.el(j, k) = block.el(i, j, k);
return 0;
}
これを実行すると、 stdoutに次
ちょっと:4.2
el
メソッドが参照渡しの場合に有効です。 https://isocpp.org/wiki/faq/references#returning-refsを参照してください。
より正確には、* non-const *参照を返す場合。 – Nawaz
@ Nawaz: 'operator ='はconstメンバー関数ではないと仮定します(これは非常に奇妙ですが、正当だと思います)。 –
@Nawaz:そうです。実際には有効でないかもしれない多くの方法があります。つまり、 'block.el(i、j、k)'に暗黙的に変換可能な戻り型があることを明確にすることさえない'buf_right.el(j、k)'のreturn-typeがアクセス可能な代入演算子を持つ型に変換します。たぶん私は "This is valid if ..."の代わりに "This is valid ... if ..."と書くべきだったのでしょうか? – ruakh
buf_right.el(j, k)
参照を返す場合....
同様方法[オペレータの動作、 a[2] =3
が他の回答にa.operator[](2) = 3
- 1. C++フォワード宣言エラー - Lvalueをバインドすることはできません
- 2. このエラーはどこにありませんか
- 3. C++エラーからデバッグすることはできませんが、コードにエラーはありません
- 4. これはC++では正しくありませんか?
- 5. このエラーは何ですか:スタックマップがありません....?
- 6. エラーmysqlcppconnがあるC++スクリプトがありません(このようなファイルはありません)
- 7. vs2010 C4353なぜこれはエラーではありません
- 8. javascriptエラー:これは機能ではありません
- 9. Cプログラムがクラッシュすることがあり、時にはエラーになることはありません。
- 10. C++のプライベート関数 - このスコープ内のエラーではありません
- 11. これはなぜC(配列)では有効ではありませんか?
- 12. は、エラーが発生することはありません:ControlContainer
- 13. このPHPスクリプトにはエラーはありませんが、SQLデータベース
- 14. なぜこのエラーが発生するのか分かりません:mapboxgl.Markerはコンストラクタではありません
- 15. エラーはありませんが、実行時に何も起こりません。
- 16. なぜこのlambda関数はtypescriptでエラーではありませんか?
- 17. Mockito - ここではインタラクションは必要ありません。
- 18. このC#拡張メソッドは純粋ではありませんか?
- 19. ここに「void」タイプはありませんか?
- 20. Android Studioのこのような列エラーはありません
- 21. C++ variantこのようなファイルやディレクトリはありません
- 22. ジェネリックで宣言されたこのコレクションでエラーはありませんか?
- 23. なぜロードは例外ではありませんか?ここで
- 24. なぜこれはconstexprではありませんか?
- 25. これはなぜリストではありませんか?
- 26. このJqueryはなぜ有効ではありませんか?
- 27. このPHPリダイレクトは安全ではありませんか?
- 28. これはアーキテクチャのレベルではありませんか?
- 29. EDMXはこれ以上EDMXではありませんか?
- 30. VB.Netなぜこれはバグではありませんか?
LHS文のリターンを何? –