【C/C++】“std::basic_ios _Elem,_Traits:无法访问private变量在类中的声明”错误原因与解决办法
生活随笔
收集整理的这篇文章主要介绍了
【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变量在类中的声明”错误原因与解决办法的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 【C/C++】lib 和 dll 的区别
- 下一篇: 【C/C++】如何判断文件夹或者文件是否