[解決済み】コンストラクタの初期化リストの評価順序について
2022-03-31 02:39:42
質問
いくつかの引数を取るコンストラクタがあります。 リストされた順序で構築されるものと思っていましたが、あるケースでは逆に構築され、アボートされたようです。引数を逆にすると、プログラムがアボートしなくなりました。 これは私が使っている構文の一例です。 この場合、a_はb_の前に初期化される必要があります。 構築の順序を保証できますか?
例
class A
{
public:
A(OtherClass o, string x, int y) :
a_(o), b_(a_, x, y) { }
OtherClass a_;
AnotherClass b_;
};
解決方法は?
クラス内のメンバ変数の宣言順序に依存します。つまり
a_
が最初になり、次に
b_
は、この例では2番目になります。
関連
-
[解決済み】LLVMで暗黙のうちに削除されたコピーコンストラクタの呼び出し
-
[解決済み】C++の変数はイニシャライザーを持っているが、不完全な型?
-
[解決済み] 式はクラス型を持つ必要があります。
-
[解決済み] 変数サイズのオブジェクトが初期化されないことがある c++
-
[解決済み] C++で、あるコンストラクタを別のコンストラクタから呼び出す(コンストラクタ・チェイニングを行う)ことは可能ですか?
-
[解決済み] ベースクラスのコンストラクタを呼び出す際のルールは?
-
[解決済み] .soファイル内のシンボルを一覧表示する方法
-
[解決済み] なぜリストの初期化(中括弧を使用)が他の方法より優れているのですか?
-
[解決済み] コンストラクタのコロンメンバー(" : ")の変な構文は何ですか?
-
[解決済み】__attribute__((constructor))は具体的にどのように機能するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 != と =! の違いと例(C++の場合)
-
[解決済み】抽象クラス型の無効なnew-expression
-
[解決済み】関数名の前に期待されるイニシャライザー
-
[解決済み】テンプレートの引数1が無効です(Code::Blocks Win Vista) - テンプレートは使いません。
-
[解決済み】デバッグアサーションに失敗しました。C++のベクトル添え字が範囲外
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】ファイルから整数を読み込んで配列に格納する C++ 【クローズド
-
[解決済み】エラー:不完全な型へのメンバーアクセス:前方宣言の
-
[解決済み】'std::cout'への未定義の参照
-
[解決済み] スタックアロケーションにより初期化されていない値が作成された