error: std::ios_base::ios_base(const std::ios_base&)’是私有的

用std::ifstream,std::ofstream作为函数参数传递时,必须通过引用传递,因为其copy方法被私有化,从而保证对象的唯一性。

正确代码


  3 #include 
  4 #include 
  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 }

你可能感兴趣的:(C++,c++,ios-base,fstream)