如何在类的构造函数中初始化ifstream变量? 下面给出的是类和构造函数。我正在使用初始化列表来初始化ifstream变量。以下代码有效。
class A
{
public:
A(ifstream& in1); // constructor
private:
ifstream& input; // reference to the input stream
};
A::A(ifstream& in1) :input(in1)
{
//counstructor used to initialise the member variables. Initialization list used to initialize.
}
为什么以下代码不起作用?
A::A(ifstream& in1)
{
input=in;
}
答案 0 :(得分:0)
参考资料必须在声明时初始化。
A::A(ifstream& in1) :input(in1)
这在声明时初始化它。成员初始值设定项列表是初始化构造函数中的引用的方法。
input=in;
这不是。
答案 1 :(得分:0)
无法使用作业初始化参考。一旦它被初始化,它只是它所指的任何别名。对它的赋值是对它引用的赋值,std::ifstream
不可复制。