【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 的区别
- 下一篇: 基于USES_CONVERSION的W2