C++ では、 (ファイルから自分自身をロードする)A
を受け入れるコンストラクターを持つオブジェクトがあります。メンバーとしてistream
を持つ別のクラスがあります。をまだ開いていないため、初期化リストから のコンストラクターをA
呼び出すことができません。クラスのコンストラクターで開くと、のコンストラクターを呼び出すには遅すぎます。のコンストラクターに送信できるように、初期化リストの を一時オブジェクトに開く方法はありますか?
もしあれば、初期化リストが呼び出される順序に何らかの保証があり、 の前に初期化されますか?A
istream
A
istream
A
istream
A
例が役立つ場合があります。
class A {
public:
A(std::istream const&);
}
class B {
public:
B(std::istream const&);
}
class MyClass {
A a;
B b;
public:
MyClass() : a(is), b(is) { // <-- How to do this?
std::istream is("path");
}
}