参照の唯一の目的はエイリアシングです。参照(定数intを参照する)を整数に代入するのは、エイリアスではないので、不合理に思えます(エラーは発生しません)。私は定数intそれ自体を定義するのと似ていると思います。違いはありますか?const intとx = 4とconst int x = 4の差異
2
A
答えて
2
関数本体またはファイルスコープ内では、唯一の違いはdecltype(x)
です。あるケースでは、それはint const
であり、他方はint const&
である。
const int & x=7;
は、値7
の一時的な匿名int
を作成します。次に、参照番号x
をバインドします。一時的なものの寿命は、基準のものまで延長されています。これは、基本的にx
と値が7
のconst int
という名前が区別できません。
メンバーの初期化の一部としてオブジェクトのコンストラクタ内でバインディングが発生する場合がほとんど同じです。その場合、寿命は延長されない。
は、私はあなたがこれを誘導することができる疑う:
struct Foo{
int const& x=7;
Foo(){};
};
いずれかの上記の構文が不正であるか、それは一方で、(参照のための標準的なコーナーケースがある場合、私は覚えていません)ぶら下がっ:
struct Foo{
int const x=7;
Foo(){};
};
は合法であり、ぶら下がりません。だから違いがある。
ファンクションのパラメータとしても違いがあります。=7
は単にデフォルトを提供するだけです。
関連する問題
- 1. タイプはauto&x = const int *ですか?
- 2. std :: function <int(int)>をstd :: function <const int&(const int&x)>に割り当てる
- 3. "const int&jj"と "int&const jj"の違いは何ですか?
- 4. int * const AND extern int *
- 5. なぜconst intはconst intより高速ですか?
- 6. const intに変換
- 7. externとconst intの使い方
- 8. const int intに変換する*
- 9. float(int)constの型特性
- 10. C++で "const int"と "int"の違いはありますか?
- 11. .at(vect.size())の差異= x;とvect.push_back(x);
- 12. 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++では
- 13. 構造体 'const char * x' vs 'char x [30]'
- 14. パンダシリーズ(アナコンダ2.7)のフォーマットワード((int)X(int)X(int))の検索方法
- 15. int main(int、char const * const *)はうまく構成されていますか?
- 16. 同じコンストラクタ内のconst intとそのconst intを持つオブジェクトを初期化する
- 17. OpenGL 3.xと4.Xの違いは?
- 18. デフォルト(int?)との差(int?)null
- 19. const intとconst char *(なぜポインタを使用するのですか?)
- 20. void foo(const int a)のconstは何をしますか?
- 21. テンプレートパラメータにunsigned int型へのconst unsigned int型の変換
- 22. C++のint x = 1とint x(1)の違いは何ですか?
- 23. のstd :: make_pair <CONSTのchar *、INT>
- 24. C++のint x ++とint ++ xは動作しませんでした。
- 25. キャストのconst intへINTポインタは、私のSTM32コードでスイッチケースノード
- 26. "char * _EXFUN(index、(const char *、int));"の意味 "
- 27. extern int aの差異; extern int a = 42;
- 28. C++ const内のconst
- 29. int [] xの違いは何ですか? int x [];?
- 30. C++ HDF5データセットの次元をconst intとして使用する
*違い*どの意味ですか?言語的な観点からは違いがあります。実際には、この特定のケースでは違いはありません。 – Nawaz
文脈の問題。これは正式な議論かどうか? –