21

C++ では、初期化リストに一時変数のようなものを含める方法はありますか。何かを渡すことなく、同じインスタンスで 2 つの定数メンバーを初期化する、const 要件を削除する、ファクトリを使用する (つまり、渡すが、ファクトリに生成させて API ユーザーから非表示にする)、またはtemp を実際にメンバー変数にします。

つまり、次のようなもの

Class Baz{
    const Foo f;
    const Bar b;
    Baz(Paramaters p):temp(p),f(p,temp),b(p,temp){ //temp is an instance of Something
                                                  // But NOT A member of Baz
    // Whatever
    }
}

それ以外の

Class Baz{
    Foo f;
    Bar b;
    Baz(Paramaters p){
        Something temp(p);
        f = Foo(p,temp)
        b = Bar(p,temp)
    }
}

また

Class Baz{
    Foo f;
    Bar b;
    Baz(Paramaters p,Something s):f(p,s),b(p,s){
    }
}
4

2 に答える 2