关于c++文件时error: std::ios_base::ios_base(const std::ios_base&)’是私有的错误

写c++时,遇到这样的问题:

error: std::ios_base::ios_base(const std::ios_base&)

解决方案;

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

文本文件是不存在再复制一份给调用函数的,因而只能是用引用类型,保证访问的是同一个文本文件

 

例子:

正确的:

void from_file(ifstream&); //申明

void tele_book::from_file(ifstream& f1)  //定义
{。。。。}


错误的:

void from_file(ifstream); //申明

void tele_book::from_file(ifstream f1)  //定义
{。。。。}


你可能感兴趣的:(c++学习,c++语言的细节问题)