次のコードは安全ですか、それともC ++ 03で未定義の動作につながりますか?
class Aries {
public:
Aries() : Taurus("foo") , Leo(Taurus + "bar") {}
private:
string Taurus;
const string Leo;
};
このコードは明らかに私の実際の問題の簡略版です。
編集 は、クラス宣言のTaurus
前に意図的に宣言されています。Leo
初期化は、クラス宣言の初期化の順序で行われることを認識しています(初期化子リストの順序ではありません)。