問題タブ [member-initialization]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Clang++ Xcode 4.4 非静的メンバーの初期化と移動コンストラクター
マウンテン ライオンで Xcode 4.4 を使用しています。テンプレートの非静的メンバーの初期化が変数の移動コンストラクターを呼び出す理由を理解できないようです。とにかくこのエラーを克服する方法はありますか?
コード例:
Xcode 4.4 および Clang は、その行に次のエラーをスローします。
c++ - 不正なメンバーの初期化
継承を使用せずに、この非常に単純なクラスを使用しています。
このエラーが発生します。
エラー C2614: 'A': メンバーの初期化が無効です: 'A' はベースまたはメンバーではありません
SOにも同様の質問がありますが、継承に関連しています。誰かがその理由を説明できますか?標準はそれについて何と言っていますか?
編集:
誰かが転送コンストラクターと C++11 のこの機能について詳しく説明してくれるとよいでしょう。
c# - C#のメンバーブレース初期化機能に相当するObjective-C/C++はありますか?
'var' (こちらの他の投稿を参照) に加えて、私が C# で本当に気に入っていることの 1 つは、次のように中かっこを使用してクラスのメンバーを宣言し、初期化できることです...
または、このように1行でも...
これにより、ReallyLongFooClassName のインスタンスが作成され、そのメンバーの「名前」と「ID」が設定されます。
これは、これを入力した場合と同じものにコンパイルされます...
では、Objective-C/C++ には、C# の member-brace-initialization に相当するものがありますか?
注: 私の他の投稿のおかげで、'auto' が Objective-C++ の 'var' に相当することは既にわかっていますが、Objective-C にはそのような同等のものはありません。これは残念です。繰り返しますが、詳細については、こちらの他の投稿を参照してください。)
アップデート
初期化子を書くことを知っています。それはまったく別のビートです。上記でデモした手法 C# では、プロパティのセッターを使用するか、コンストラクターを記述する必要なくメンバー変数を直接設定します (Objective-C の「init」メンバーと同等のものです)。init メンバーを記述する必要があるため、設定したいものを事前に指定する必要があります。メンバーブレースの初期化により、プロパティ/メンバー変数の任意の組み合わせを任意の順序で指定できます。繰り返しますが、一度に複数行のコードを書くための単なる構文糖衣です。実際にクラスを変更するわけではありません。
java - c++ の "new" キーワードと Java の比較
まず第一に、これが重複していないことを願っています。私は Java プログラマーで、現在 C++ に変更しています。Javaでは、このようにすることができます
そして、私の理解では、次のようにC ++で同じことができます(Javaのobjが変数に参照としてのみ保存される方法を確認してください):
私の質問はこれです: このオブジェクトはどのくらい生きていますか? ポインタが生きている限り生きますか?また、オブジェクトのメンバー初期化を行うことは可能ですか? もしそうなら、ポインターがメンバー変数として保存されている限り、オブジェクトは生き続けますか (あなたがそれを保存しているオブジェクトが破棄されるまで)?
誤字脱字はご容赦ください。良い一日/夜を!
c++ - 定数引数を持つクラス宣言内のクラス インスタンス
別のクラスの定義内で定数引数を持つクラスのインスタンスを宣言するのに問題があります。
これから私はエラーを取得します:
c++ - デフォルトの引数を持つメンバー初期化リスト
メンバー初期化リストでデフォルト引数を使用することは可能ですか?
引数を設定して呼び出しても、コンストラクタは常に x、y、z を 0 に設定します。
c++ - const 循環参照メンバーを初期化する方法
たとえば、2つのクラスがあります
Letfoo
は のオブジェクトでFoo
、bar
は のオブジェクトですBar
。foo
作成/初期化する方法 (通常または「ハッキング」)はありますか?またbar
、それらのメンバーが相互に参照されます ( is and is 'foo' を意味します)。m_bar
m_foo
foo.m_bar
bar
bar.m_foo
と に任意のメンバーを追加しFoo
たりBar
、それらの親を追加したり、それらをテンプレートにしたりすることができます。
c++ - C++11の「メンバー初期化子」とは?
「メンバー初期化子」という奇妙な概念に出くわしました。
ここでは次のように述べています。
C++11 では、メンバー初期化子 (コンストラクターがメンバー自体を初期化しなかった場合にクラス スコープでメンバーに適用される式) が追加されました。
その定義は何ですか?
その使用法を説明する例はありますか?
c++ - メンバー初期化リストのコンストラクターに渡された関数を受け入れないハッシュテーブル
クラス用に作成したハッシュ テーブル テンプレートがあります。このハッシュ テーブルの利用に依存する予定のプロジェクトがあります。バケットの数を初期化するための符号なし整数値と、ポイントするハッシュ関数を受け入れます。そのハッシュ関数はまだ書いていませんが、宣言はしています。ハッシュ テーブル データ メンバーの Game クラスでメンバー初期化子を使用しようとすると、理解できないエラーが発生します。
私のハッシュテーブルクラスは次のとおりです。
マイ ゲーム.h:
My Game.cpp (メンバーの初期化を機能させることができないため、これは明らかに単なるスケルトンです)
私はかなり長い間これに取り組んできましたが、壁にぶつかっています。これを起動して実行する方法について、いくつかの助けをいただければ幸いです。見る必要がある別のスニペットがあるかどうか教えてください (私はその点で徹底しようとしました)。