問題タブ [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++ - 別のクラスから直接インスタンス化されると、メンバーの整数が変更されます
A と B の 2 つのクラスがあるとします。A には整数があり、コンストラクターからコンソールに表示されます。また、B のメンバ オブジェクトも持ちます。B は A と同じように整数を表示しますが、A が作成するときに A から整数を取得します。整数は const 値であるため、B のコンストラクターに直接渡す必要があります。
したがって、A が独自の整数を B に渡すと、A と B の両方がコンソールに同じ数値を表示すると予想されます (1)。代わりに、B のコンストラクターがその整数を出力すると、-858993460 が表示されます。何故ですか? A が B オブジェクトをインスタンス化し、B の const int に整数を渡すと、整数の値が変わるのはなぜですか?
main.cpp
ああ
Bh
c++ - C++クラスのQtクラスデータメンバーは、使用する前に初期化する必要がありますか?
多くの記事や書籍で提案されている多くの C++ プログラミングのベスト プラクティスがあります。以下は、C++ クラス データ メンバーに関連するサブセットです。
- オブジェクトを使用する前に、オブジェクトが初期化されていることを確認してください。
- すべてのコンストラクターがオブジェクト内のすべてを初期化するようにしてください。
- 通常、各コンストラクターの本体よりも初期化子リストでデータ メンバーを初期化する方が効果的です。
- 初期化子リストでは、データ メンバーは宣言されている順序でリストする必要があります。
Qt クラス型のデータ メンバーを持つ次のクラスを検討してください。
上記のベスト プラクティスを適用すると、コンストラクター コードは次のようになります。
ただし、すべての Qt クラス データ メンバを初期化する必要はないという印象があります。しかし、私はこれを 100% 確信しているわけではありません。一部の開発者は、すべてのデータ メンバーを初期化リストに入れることで、初期化する必要があるいくつかの重要なデータ メンバーの初期化を省略することを避けることができると主張しています。ただし、これが本当に懸念事項である場合は、初期化する必要のないデータ メンバーごとにコメント行を追加することをお勧めします。たとえば、次のようになります。
要約すると、Qt クラスのデータ メンバーを初期化する必要がある場合と、初期化が不要な場合とその理由を知りたいと思います。ありがとう!
c++ - ネストされたクラス。エラー: パラメーター宣言子が必要です - 内部クラス インスタンス用
C++ でネストされたクラスについて学び始めました。ここに貼り付けた簡単なコードを試して、ネストされたクラスがどのように機能するかを確認しました。しかし、コンパイルは私が理解できないいくつかのエラーで終了します。
ファイル: check.cpp
コンパイル時に発生するエラーg++ -Wall -std=c++11 -o check.out check.cpp
このエラーの背後にある適切な説明と、このエラーを克服する方法が必要です。
ios - Structs でメンバー初期化子はどのように機能しますか? (スイフトで)
私は完全な初心者なので、正しい質問をしているかどうかさえわかりません。しかし、 for ループのコードの " User(name: "John ...) " 部分が機能する理由を理解するのに苦労しています
}
しかし、これはそうではありません
}
CASE1 がどのように機能するかを理解するために、このコードの単純なバージョン、つまり CASE2 を実行しました。どちらの場合もまったく同じことが起こっていますが、[ User(..arguments..) について] 2番目のケースでは「Declaration Expected」というエラーが発生します。ポール卿 (スタンフォード cs193p) は、これはかなり単純なデータベースだと言いましたが、私はこの問題を 6 時間以上解明しようと試みてきました。
c++ - メンバー初期化リストでクラスメンバーのポインタを渡す方法は?
HighWaterDetector という名前のクラスがあります。
コンストラクターを使用:
HighWaterDetector のメンバー初期化リストで Output のインスタンスを初期化しようとしていますが、クラス HighWaterDetector のメンバーでもある NCD2Relay のインスタンスへのポインターを渡す必要がある Output です。出力コンストラクター内でプログラムがクラッシュします。これは間違った方法ですか?私は何を間違っていますか?
出力クラス:
c++ - unique_ptr を初期化できません
unique_ptr
プロジェクトに次のコードがありますが、行が間違っているというエラー C2059, syntax error "new" が表示されます。
ここで何が起きてるの?
c++ - メンバーの初期化リストと代入/コピー コンストラクター (ブーストのdeadline_timer)
次のクラス宣言があります。
クラスの次のコンストラクターは正常にA
機能します。
しかし、私がこれを書くとき:
次のエラーが表示されます。
エラー: '(boost::asio::deadline_timer {aka boost::asio::basic_deadline_timer}) の呼び出しに一致しません (boost::asio::io_service&)
おそらく、コピー コンストラクターboost::asio::deadline_timer
が定義されていないためです。しかし、メンバー初期化リストの場合はどうなるのでしょうか? コピーコンストラクタを使用していませんか?
クラスコンストラクター内で割り当て/コピーコンストラクターを使用する場合と比較して、メンバー初期化リストで使用されるメカニズムは何かに関して、私の質問はおそらくより一般的にすることができます。