誰かがこの質問を今日私に聞いています。 C++での参照の必要性は何ですか、なぜBjarne Stroustrup
はC++でreference
と考えましたか?C++のリファレンスの必要性
答えて
はStroustrup氏の説明です:http://www2.research.att.com/~bs/bs_faq2.html#pointers-and-references
C++はCからポインタを継承したので、私は深刻な互換性の問題を生じさせることなく、それらを削除することができませんでした。参照はいくつかの点で便利ですが、私がC++でそれらを導入した直接の理由は、演算子のオーバーロードをサポートすることでした。ここで
例です。
void f1(const complex* x, const complex* y) // without references
{
complex z = *x+*y; // ugly
// ...
}
void f2(const complex& x, const complex& y) // with references
{
complex z = x+y; // better
// ...
}
'complex a、b;を忘れないでください。 f1(&a、&b); f2(a、b); '関数を呼び出すことはずっと激しくなりません。 – chris
あなたは人間自身が、「C++の設計と進化」という本読んで、このような質問への答えを知りたい場合は:ここを参照してください、
またhttp://www2.research.att.com/~bs/dne.html
を、彼はどこ詳細に答えを説明します
http://www2.research.att.com/~bs/bs_faq2.html#pointers-and-references
は引用すると:
C++からの継承したポインタは、 がなくても削除できませんでした。参考文献は の場合に便利ですが、私がC++でそれらを導入した直接の理由は、 サポート演算子のオーバーロードです。例:ここでは
void f1(const complex* x, const complex* y) // without references
{
complex z = *x+*y; // ugly
// ...
}
void f2(const complex& x, const complex& y) // with references
{
complex z = x+y; // better
// ...
}
- 1. スリープモード、スタンバイモード、アイドルモードでのiOSリファレンスが必要
- 2. Cクラスのリファレンス#
- 3. C++:リファレンスのアドレス?
- 4. C++リファレンスのライフサイクル
- 5. ランタイムメモリアドレスバインディングの必要性
- 6. イベントの必要性
- 7. ロケーションプラグマの必要性
- 8. PRBSパターン生成C/C++ APIの必要性
- 9. C++リファレンス
- 10. C#のCodeDOMダブルタイプ・リファレンス
- 11. C++言語のリファレンス
- 12. 必要性Word2Vec
- 13. BaseWaveApplLayerのhandleSelfMsgの必要性
- 14. jQueryの.ready()の必要性
- 15. リファレンスに一時的にバインディングするには、C++でコピーコンストラクタが必要ですか?
- 16. リファレンスとライブラリC++/C#
- 17. ビデオストリームでの年齢と性別の検出のためのOpenCV(Python)のリファレンスが必要
- 18. このC++コードでポインタの必要性は何ですか?
- 19. firebaseのリファレンスをキャッシュする必要がありますか?
- 20. なステートメントでの必要性 ')'
- 21. フォームの必要性がmodels.py
- 22. 必要性の交換が
- 23. "main"(java)の必要性
- 24. スタックフレームの必要性、ARM
- 25. ImportsとTypescriptの必要性
- 26. "Exit Function"の必要性
- 27. OrderedDictionary、ListDictionary、HybridDictionaryの必要性
- 28. gdbのC++リファレンスのハードウェアブレークポイント
- 29. C#コンソールアプリケーションのリファレンスのバージョン
- 30. C#Windows.Security.Cryptography.Coreリファレンス
はどのような答えの有用性の尺度の「シンタックスシュガー」料金は?その機能のもう一つの名前は "ポインタのuggifier"でした。 – dasblinkenlight
値とポインタにアクセスするための統一構文を持つこと。最も重要な機能の参照は、それらを含む演算子に過負荷をかける能力です。 – enobayram
文法はオフです。あなたが何を意味するのかを正確に伝えるのは難しいです。あなたは、値渡しやポインタ渡しとは対照的に、引数を引数として渡すことを指していますか? – DevNull