在 C++ 中,我有一个对象A
,它有一个构造函数,该构造函数接受一个istream
(从文件中加载自身)。我有另一个A
作为成员的班级。我无法A
从初始化列表中调用 's 构造函数,因为我还没有打开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");
}
}