概述
-
报错
error C2280: “std::basic_ifstream<char,std::char_traits>::basic_ifstream(const std::basic_ifstream<char,std::char_traits> &)”: 尝试引用已删除的函数 -
原因
在系统声明中有这么一句代码
basic_ifstream(const basic_ifstream&) = delete;
这句话的意思是base_fstream类的拷贝(赋值)构造函数是已删除函数,这样可以防止多个对象同时读取或写入IO缓冲区。(未能理解)
-
解决方法
若ifstream作为函数形参时,将其改为传址pass by reference。
例如将
void init_vs(ifstream);
改写成
void init_vs(ifstream &);
最后
以上就是光亮手链为你收集整理的【解决问题】使用fstream类时报错尝试引用已删除的函数的全部内容,希望文章能够帮你解决【解决问题】使用fstream类时报错尝试引用已删除的函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复