私は2人と混同しています。私は、本質的に一定でありかつ一度設定されたC++参照を知っています。他のものを参照するように変更することはできません。"const int&jj"と "int&const jj"の違いは何ですか?
6
A
答えて
9
const int&
は、const int
への参照を意味します。 (同様に、int&
は非const int
を参照のこと。)
int& const
文字通り参照自体はconst修飾することができないため、C++で無効である(非const int
に)const参照を意味します。
CV-修飾参照はCV-修飾子 は型定義名を使用することによって導入される場合を除き、病気形成されている([dcl.typedef]、 [temp.param])またはdecltype-specifier([dcl.type.simple])です。この場合、 のcv-qualifierは無視されます。
あなたが言ったように、参照は本質的に一定であり、一度設定されると、他のものを参照するように変更することはできません。 (初期化後に参照を再バインドすることはできません)。これは、参照が常に "const"であることを意味し、const修飾参照またはconst非修飾参照は実際には意味をなさない可能性があります。
3
const
修飾子を参照に適用すると、参照値を変更できなくなります。たとえば:
void foo(int& arg) {
arg = 1; // OK. The value passed by a caller will be changed in-place.
}
void foo(const int& arg) {
arg = 1; // Compilation error.
}
int& const jj
は、コンパイルエラーです。
3
違い:
const int& jj// means a reference to const int.
int& const jj // ill formed code that should trigger a compiler error
関連する問題
- 1. C++で "const int"と "int"の違いはありますか?
- 2. なぜconst intはconst intより高速ですか?
- 3. int * const AND extern int *
- 4. const intとx = 4とconst int x = 4の差異
- 5. void foo(const int a)のconstは何をしますか?
- 6. int main(int、char const * const *)はうまく構成されていますか?
- 7. const intに変換
- 8. "int * const * b"とは何を意味していますか?
- 9. javacriptのconstとconst {}の違いは何ですか
- 10. const int intに変換する*
- 11. constポインタをintに宣言しますか?</p> <pre><code>int* p1; // pointer to int const int* p2; // pointer to constant int int* const p3; // constant pointer to int const int* const p4; // constant pointer to constant int </code></pre> <p>とDに:私たちは、次のしているC++では
- 12. SMLのint - > int - > intと(int * int) - > intの違いは何ですか?
- 13. C言語のフレーズ(int const * const b)は何を意味しますか?
- 14. externとconst intの使い方
- 15. float(int)constの型特性
- 16. std :: function <int(int)>をstd :: function <const int&(const int&x)>に割り当てる
- 17. なぜconst char * foo = "Hello"ですか; constではないコンパイルint * foo = 5 ;?私が間違っている場合
- 18. const intとconst char *(なぜポインタを使用するのですか?)
- 19. "int * a = new int"と "int * a = new int()"の違いは何ですか?
- 20. なぜstd :: variantはC言語でstd :: variant <int、const int>
- 21. intをconst intに再割り当てしますか?
- 22. Javaのpublic intとintの違いは何ですか?
- 23. Cのint * ptrとint * ptrの違いは何ですか?
- 24. Cのintとextern intの違いは何ですか?
- 25. 「long int a = 2」と「int a = 2L」の違いは何ですか?
- 26. int ++と++ intの違いは何ですか?
- 27. void(int)とvoid(*)(int)の違いは何ですか?
- 28. int(* p)[3]とint * p [3]の違いは何ですか?
- 29. int main()とint main(void)の違いは何ですか?
- 30. intとintの違いは何ですか:
あなたのコンパイラは、第二の変異体を受け入れていますか? – juanchopanza
2番目の変種を受け入れるコンパイラを指定してください。 – Angew
@HumamHelfawiそれはまったく重複していません。この質問は、 'const int&'と 'int const&'を扱います。どちらも有効な形式です。これは 'const int&'と構文エラー 'int&const'を扱います。 – Angew