//Test.cpp
#include"header/Test.h"
#include <fstream>
class Time
{
pulic :
ifstream infile;
Time(ifstream &infile)
{
this->infile = infile; //编译出错,说:ios_base.h::operator= is private,我找到该文件改成public 还是有错,又报:undefined reference to 'std::ios_base::operator=(std::io_base const&)'collect2: ld returned 1 exit status.大家可以试试这个程序。
}
};
int main()
{
ifstream in;
in.open("src/test.doc",ios::in|ios::binary);
...
Time t(in);
return 0;
}
9 个解决方案
#1
你传入引用 然后直接操作不行么....ifstream 不能复制
#2
不让你用=,你还非得用。
换个思路吧。
换个思路吧。
#3
传引用吧
#4
在类中需要使用引用传递流状态
ifstream &infile;
ifstream &infile;
#5
直接用,不能都在构造函数吧,我在Time类的其它函数中也要用到这个对象啊。
我就觉得ifstream不让引用赋值,怎么解决这个问题?有什么其它方法吗?
#6
你把文件名作参数 传到构造函数里~~~~ 然后在构造里ifstream打开文件 初始化吧!!
#7
不懂。。。 学习来了
#8
我这只是一个例子,用来说明问题的。我的实际应用是要把ifstream的一个对象传到另外的类中。
#9
这个构造函数中,只能用初始化列表的办法传递引用,因为进入构造函数内部就只有赋值一途。
其余函数,直接用就可以了,就和使用其余数据成员一样,只是不要再定义了;如果有打开文件的操作,那么就必须要close文件,当然,这主要是为了处理方便,否则其本体什么时候不能用了都不知道。
其余函数,直接用就可以了,就和使用其余数据成员一样,只是不要再定义了;如果有打开文件的操作,那么就必须要close文件,当然,这主要是为了处理方便,否则其本体什么时候不能用了都不知道。
#1
你传入引用 然后直接操作不行么....ifstream 不能复制
#2
不让你用=,你还非得用。
换个思路吧。
换个思路吧。
#3
传引用吧
#4
在类中需要使用引用传递流状态
ifstream &infile;
ifstream &infile;
#5
直接用,不能都在构造函数吧,我在Time类的其它函数中也要用到这个对象啊。
我就觉得ifstream不让引用赋值,怎么解决这个问题?有什么其它方法吗?
#6
你把文件名作参数 传到构造函数里~~~~ 然后在构造里ifstream打开文件 初始化吧!!
#7
不懂。。。 学习来了
#8
我这只是一个例子,用来说明问题的。我的实际应用是要把ifstream的一个对象传到另外的类中。
#9
这个构造函数中,只能用初始化列表的办法传递引用,因为进入构造函数内部就只有赋值一途。
其余函数,直接用就可以了,就和使用其余数据成员一样,只是不要再定义了;如果有打开文件的操作,那么就必须要close文件,当然,这主要是为了处理方便,否则其本体什么时候不能用了都不知道。
其余函数,直接用就可以了,就和使用其余数据成员一样,只是不要再定义了;如果有打开文件的操作,那么就必须要close文件,当然,这主要是为了处理方便,否则其本体什么时候不能用了都不知道。