タグ付けされた質問 「const」

プログラミングの定数とは、プログラムの実行中に値が固定される定義です。たとえば、ほとんどの言語のリテラルは定数です。参照透過的なプログラミングスタイルでは、すべての定義は一定です。const修飾されたデータストレージ領域(オブジェクト、フィールド、変数、パラメーター)は「変更されない」ため、追加のコードジェネレーターの最適化とプログラムの正確さの追加の静的チェックが可能です。


5
ES6では、変数がletまたはconstで宣言されていませんか?
OverаэтотвопросестьответынаStack Overflowнарусском:Всплываютлиперемененее、объявленныеспомоststвletиcon ES6をしばらく使用していて、で宣言された変数がvar期待どおりに巻き上げられていることに気付きました... console.log(typeof name); // undefined var name = "John"; ...で宣言された変数、letまたはconst巻き上げに問題があると思われる変数: console.log(typeof name); // ReferenceError let name = "John"; そして console.log(typeof name); // ReferenceError const name = "John"; これは、宣言された変数letまたはconstホイストされていない変数を意味しますか?ここで本当に何が起こっているのですか?間に何らかの差があるletと、constこの問題では?

19
同様のconstメンバー関数と非constメンバー関数の間のコードの重複を削除するにはどうすればよいですか?
class X内部メンバーにアクセスを戻したい場所が次のようになっているとします。 class Z { // details }; class X { std::vector<Z> vecZ; public: Z& Z(size_t index) { // massive amounts of code for validating index Z& ret = vecZ[index]; // even more code for determining that the Z instance // at index is *exactly* the right sort of Z …

11
非const参照が一時オブジェクトにバインドできないのはなぜですか?
一時オブジェクトへの非const参照の取得が許可されないのはなぜgetx()ですか、どの関数が返しますか?明らかに、これはC ++標準では禁止されていますが、標準への参照ではなく、そのような制限の目的に興味があります。 struct X { X& ref() { return *this; } }; X getx() { return X();} void g(X & x) {} int f() { const X& x = getx(); // OK X& x = getx(); // error X& x = getx().ref(); // OK g(getx()); //error g(getx().ref()); //OK return 0; …

10
静的constと#define
プリプロセッサstatic constよりもvars を使用する方が良い#defineですか?それともコンテキストに依存しますか? 各方法の長所と短所は何ですか?
212 c++  c  const 

4
JavaScriptで関数を定義するためのconstの適切な使用
constJavaScriptで特定の関数を使用して設定できる値のタイプに制限があるかどうかに興味があります。これは有効ですか?動作することは確かですが、なんらかの理由で悪い習慣と見なされていますか? const doSomething = () => { ... } ES6では、このようにすべての関数を定義する必要がありますか?もしそうなら、これは流行っていないようです。 コメントありがとうございます!




4
定数配列を宣言する
私が試してみました: const ascii = "abcdefghijklmnopqrstuvwxyz" const letter_goodness []float32 = { .0817,.0149,.0278,.0425,.1270,.0223,.0202, .0609,.0697,.0015,.0077,.0402,.0241,.0675, .0751,.0193,.0009,.0599,.0633,.0906,.0276, .0098,.0236,.0015,.0197,.0007 } const letter_goodness = { .0817,.0149,.0278,.0425,.1270,.0223,.0202, .0609,.0697,.0015,.0077,.0402,.0241,.0675, .0751,.0193,.0009,.0599,.0633,.0906,.0276, .0098,.0236,.0015,.0197,.0007 } const letter_goodness = []float32 { .0817,.0149,.0278,.0425,.1270,.0223,.0202, .0609,.0697,.0015,.0077,.0402,.0241,.0675, .0751,.0193,.0009,.0599,.0633,.0906,.0276, .0098,.0236,.0015,.0197,.0007 } 最初に、宣言と初期化は正常に機能しますが、2番目、3番目、4番目は機能しません。floatのconst配列を宣言して初期化するにはどうすればよいですか?
164 arrays  go  const 

11
Javaの最終とC ++のconst
チュートリアルC ++プログラマのためのJava(ハイライトは自分である)ことを言います: キーワードfinalは 、C ++のconst とほぼ同等です。 この文脈で「大まかに」はどういう意味ですか?彼らはまったく同じではありませんか? もしあれば、違いは何ですか?
151 java  c++  const  final 

3
一時的なデッドゾーンとは何ですか?
初期化される前に値にアクセスするletと、一時的なデッドゾーンと呼ばれるものconstが原因で発生する可能性があると聞きました。ReferenceError 一時的なデッドゾーンとは何ですか、それはスコープと巻き上げにどのように関係し、どのような状況で発生しますか?

17
constポインターのポイントは何ですか?
私はconst値へのポインターについて話しているのではなく、constポインター自体について話している。 私は非常に基本的なものを超えてCとC ++を学んでいて、今日まで、ポインタが値によって関数に渡されることに気づきました。これは理にかなっています。つまり、関数内では、呼び出し元からの元のポインターに影響を与えることなく、コピーしたポインターを他の値にポイントできます。 それで、関数ヘッダーがあることの意味は何ですか? void foo(int* const ptr); このような関数の内部では、ptrを他のものにポイントすることはできません。これはconstであり、変更したくないためですが、次のような関数です。 void foo(int* ptr); 同様に仕事をします!ポインタはとにかくコピーされ、コピーを変更しても呼び出し元のポインタは影響を受けないためです。それでは、constの利点は何ですか?
149 c++  c  pointers  const 

6
前のconstまたは後のconst?
開始するには、おそらくそれを知っています const使用して、オブジェクトのデータまたはポインタを変更できないようにするか、またはその両方を行うことができることます。 const Object* obj; // can't change data Object* const obj; // can't change pointer const Object* const obj; // can't change data or pointer ただし、次の構文も使用できます。 Object const *obj; // same as const Object* obj; 問題と思われるのは、アスタリスクのどちら側に置くかだけです。 constキーワードを入力。個人的にconstは、タイプの左側に置いて、データが変更可能ではないことを指定することを好みます。左から右への考え方ではデータが読みやすいため、どの構文が最初に来るのですか? さらに重要なのは、なぜ指定する2つの正しい方法があるのか constデータ、また、どのような状況で、どちらか一方を好むか、どちらか一方が必要な場合にどちらが必要かということです。 編集: ですから、私が生まれるずっと前にコンパイラが物事を解釈する方法の標準が起草されたとき、これは恣意的な決定だったようです。constはキーワードの左側にあるものに適用されるので(デフォルトでは?)、少なくとも宣言が変更されるときまで、他の方法でキーワードと型修飾子を適用するための「ショートカット」を追加しても害はなかったと思います*または&の解析... これはCの場合もそうでした。
145 c++  c  syntax  const 


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.