ソースファイルをきれいに保つために、クラス内の一連のメンバーを初期化したいと考えています。ただし、オブジェクトはコンストラクターを介してのみ受け取る引数を取り、コンストラクターの初期化リストまたは代入を介してコンストラクターで初期化できます。(2 番目のオプションは確実に機能しません。) これは基本的にシナリオです。
ヘッダー内
class Foo
{
public:
Foo(Pointer * ptr);
private:
Pointer * ptr;
Member m1{ptr, "SomeText"};
Member m2{ptr, "SomeOtherText"};
}
CPPでは
Foo::Foo(Pointer*ptr) :
ptr(ptr)
{
// ...
}
ptr
ここでの質問は次のとおりです。標準はとm1
/の間の初期化の順序について何かを述べていm2
ますか? 明らかに、このコードは が と の前に初期化された場合にのみ機能しptr
ます。m1
m2