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

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


3
ラムダで並べ替える方法は?
sort(mMyClassVector.begin(), mMyClassVector.end(), [](const MyClass & a, const MyClass & b) { return a.mProperty > b.mProperty; }); インスタンスメソッドをバインドする代わりに、ラムダ関数を使用してカスタムクラスを並べ替えたいのですが。ただし、上記のコードではエラーが発生します。 エラーC2564: 'const char *':組み込み型への関数スタイルの変換は1つの引数しか取れません で正常に動作しboost::bind(&MyApp::myMethod, this, _1, _2)ます。
136 c++  sorting  lambda  char  const 

4
C ++での「const」の使用法はいくつですか。
初心者のC ++プログラマーとして、私にはまだ非常に不明瞭に見えるいくつかの構造体がありますconst。これらの1つはです。あなたはそれを非常に多くの場所で使用することができ、初心者が生き返ることがほとんど不可能である非常に多くの異なる効果があります。一部のC ++の達人は、さまざまな使用法、およびそれらを使用しないかどうか、および/または使用しない理由を永久に一度説明しますか?
129 c++  const 


3
constの命名規則に従う
constGolangの名前に命名規則があるかどうかを確認しようとしています。 私は個人的にはCスタイルに従って大文字で書く傾向がありますが、このページhttp://golang.org/doc/effective_go.htmlには、言語のいくつかの命名規則が記載されているようですが、何も見つかりませんでした。

5
クラスの非定数静的メンバーまたは静的配列を初期化できないのはなぜですか?
クラスの非const staticメンバーまたはstatic配列を初期化できないのはなぜですか? class A { static const int a = 3; static int b = 3; static const int c[2] = { 1, 2 }; static int d[2] = { 1, 2 }; }; int main() { A a; return 0; } コンパイラは次のエラーを発行します。 g++ main.cpp main.cpp:4:17: error: ISO C++ forbids …
116 c++  static  const 


4
`const shared_ptr <T>`と `shared_ptr <const T>`の違いは何ですか?
次のようなC ++の共有ポインターのアクセサーメソッドを書いています。 class Foo { public: return_type getBar() const { return m_bar; } private: boost::shared_ptr&lt;Bar&gt; m_bar; } したがってgetBar()、戻り値の型のconst-nessをサポートするためにboost::shared_ptrは、Barそれが指す変更を防ぐ必要があります。私の推測では、それshared_ptr&lt;const Bar&gt;は私が戻りたいタイプですconst shared_ptr&lt;Bar&gt;が、ポインタ自体が別のものを指すように再割り当てすることはできませんが、それが指すBarものの変更は許可さBarれます...しかし、私にはわかりません。確実に知っている人がこれを確認するか、間違った場合は修正していただければ幸いです。ありがとう!
115 c++  boost  const  shared-ptr 

5
C ++マップアクセス破棄修飾子(const)
次のコードはconst、operator[]メソッドとしてマップを渡すと修飾子が破棄されることを示しています。 #include &lt;iostream&gt; #include &lt;map&gt; #include &lt;string&gt; using namespace std; class MapWrapper { public: const int &amp;get_value(const int &amp;key) const { return _map[key]; } private: map&lt;int, int&gt; _map; }; int main() { MapWrapper mw; cout &lt;&lt; mw.get_value(42) &lt;&lt; endl; return 0; } これは、マップアクセスで発生する可能性がある割り当てのためですか?マップアクセスを持つ関数をconstとして宣言することはできませんか? MapWrapper.cpp:10: error: passing ‘const std::map&lt;int, int, std::less&lt;int&gt;, …
113 c++  stl  const  maps 

10
C ++でプライベート静的constマップを初期化する方法は?
辞書または連想配列string=&gt; だけが必要intです。 この場合の型マップC ++があります。 しかし、すべてのインスタンス(-&gt;静的)に必要なマップは1つだけであり、このマップは変更できません(-&gt; const)。 私はこの方法をブーストライブラリで見つけました std::map&lt;int, char&gt; example = boost::assign::map_list_of(1, 'a') (2, 'b') (3, 'c'); このlibなしの他の解決策はありますか?私はこのようなものを試しましたが、マップの初期化には常にいくつかの問題があります。 class myClass{ private: static map&lt;int,int&gt; create_map() { map&lt;int,int&gt; m; m[1] = 2; m[3] = 4; m[5] = 6; return m; } static map&lt;int,int&gt; myMap = create_map(); };

10
クラスのconstメンバー変数を初期化する方法は?
#include &lt;iostream&gt; using namespace std; class T1 { const int t = 100; public: T1() { cout &lt;&lt; "T1 constructor: " &lt;&lt; t &lt;&lt; endl; } }; constメンバー変数tを100で初期化しようとすると、次のエラーが発生します。 test.cpp:21: error: ISO C++ forbids initialization of member ‘t’ test.cpp:21: error: making ‘t’ static const値を初期化するにはどうすればよいですか?
105 c++  const 

7
なぜargcは定数ではないのですか?
int main( const int argc , const char[] const argv) 効果的なC ++アイテム#3の状態「可能な限り使用することはCONST」、私は「なぜこれらの『定数』パラメータをしない考え始めますconst」?。 argcプログラムのの値が変更されるシナリオはありますか?
104 c++  const  main  argc  effective-c++ 

2
値によるC ++ 0xラムダキャプチャは常にconst?
値でキャプチャし、キャプチャした値を非定数にする方法はありますか?ライブラリのファンクターがあり、const以外のメソッドをキャプチャして呼び出したいのですが、constにする必要があります。 以下はコンパイルされませんが、foo :: operator()constを作成すると修正されます。 struct foo { bool operator () ( const bool &amp; a ) { return a; } }; int _tmain(int argc, _TCHAR* argv[]) { foo afoo; auto bar = [=] () -&gt; bool { afoo(true); }; return 0; }
102 c++  lambda  const  c++11 

7
JavaScriptで定数の値を変更できるのはなぜですか
ES6はまだ標準化されていないことを知っています が、現在多くのブラウザconstがJSのキーワードをサポートしています。 仕様では、次のように書かれています。 定数の値は再割り当てによって変更できず、定数を再宣言することはできません。このため、初期化せずに定数を宣言することは可能ですが、そのようにしても意味がありません。 そして私がこのようなことをすると: const xxx = 6; xxx = 999; xxx++; const yyy = []; yyy = 'string'; yyy = [15, 'a']; 私はそのすべてがOKであることがわかりxxx、まだされる6とyyyあります[]。 しかし、実行するyyy.push(6); yyy.push(1);と、定数配列が変更されています。現在のところ[6, 1]、私はまだそれを変更できませんyyy = 1;。 これはバグですか、それとも何か不足していますか?最新のクロームとFF29で試してみました

4
C ++ constマップ要素へのアクセス
operator []を使用してconst C ++マップの要素にアクセスしようとしましたが、このメソッドは失敗しました。また、 "at()"を使用して同じことを試みました。今回はうまくいきました。ただし、 "at()"を使用してconst C ++マップの要素にアクセスする方法についての参照は見つかりませんでした。「at()」はC ++マップに新しく追加された関数ですか?これに関する詳細情報はどこにありますか?どうもありがとうございました! 例は次のとおりです。 #include &lt;iostream&gt; #include &lt;map&gt; using namespace std; int main() { map&lt;int, char&gt; A; A[1] = 'b'; A[3] = 'c'; const map&lt;int, char&gt; B = A; cout &lt;&lt; B.at(3) &lt;&lt; endl; // it works cout &lt;&lt; B[3] &lt;&lt; endl; // it …
100 c++  stl  map  const 

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