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 }
posted @ 2015-06-10 20:16  chenqiangzhishen  阅读(174)  评论(0编辑  收藏  举报