error: std::ios_base::ios_base(const std::ios_base&)’是私有的
用std::ifstream,std::ofstream作为函数参数传递时,必须通过引用传递,因为其copy方法被私有化,从而保证对象的唯一性。
正确代码
3 #include <iostream>
4 #include <fstream>
5 using namespace std;
6
7 OrderEntryMsg ReadOrderEntryMsg(ifstream &infile)
8 {
9 OrderEntryMsg msg;
10 infile.seekg(sizeof(MsgHeader), ios::cur);
11 infile.read((char*)&msg, sizeof(OrderEntryMsg));
12 return msg;
13 }
错误代码
7 OrderEntryMsg ReadOrderEntryMsg(ifstream infile)
8 {
9 OrderEntryMsg msg;
10 infile.seekg(sizeof(MsgHeader), ios::cur);
11 infile.read((char*)&msg, sizeof(OrderEntryMsg));
12 return msg;
13 }