欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > c/c++ >内容正文

c/c++

【C/C++】“std::basic_ios _Elem,_Traits:无法访问private变量在类中的声明”错误原因与解决办法

发布时间:2025/3/21 c/c++ 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【C/C++】“std::basic_ios _Elem,_Traits:无法访问private变量在类中的声明”错误原因与解决办法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

C++工程出现如下错误:

c:\program files (x86)\microsoft visual studio 8\vc\include\fstream(675) : error C2248: 'std::basic_ios<_Elem,_Traits>::basic_ios' : cannot access private member declared in class 'std::basic_ios<_Elem,_Traits>'。

修改前代码如下:

//使用事先生成好的txt文件,加载方框顶点坐标信息。 int GetRectInfoFromTxt(ifstream rectInfoTxt, int rectNum, ST_RECT_INFO *rectInfo) {if(rectInfoTxt) {for(int i = 0; i < rectNum; i++) {//依次读取每个方框的左上角、右下角坐标参数。rectInfoTxt>>rectInfo[i].ax>>gTargetInfo[i].ay>>rectInfo[i].bx>>rectInfo[i].by;}}return 0; }

错误原因:istream作为函数参数的使用错误,由于流对象是不允许复制,所以在传给函数作为参数是应该传入引用。

解决办法:在流对象参数rectInfoTxt前加上“&”就可以了。修改如下:

int GetRectInfoFromTxt(ifstream &rectInfoTxt, int rectNum, ST_RECT_INFO *rectInfo) {if(rectInfoTxt) {for(int i = 0; i < rectNum; i++) {//依次读取每个方框的左上角、右下角坐标参数。rectInfoTxt>>rectInfo[i].ax>>gTargetInfo[i].ay>>rectInfo[i].bx>>rectInfo[i].by;}}return 0; }

 

总结

以上是生活随笔为你收集整理的【C/C++】“std::basic_ios _Elem,_Traits:无法访问private变量在类中的声明”错误原因与解决办法的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。