1

这是我收到的错误消息:

错误 C2248:“std::basic_ios<_Elem,_Traits>::basic_ios”:无法访问在类“std::basic_ios<_Elem,_Traits>”C:\Program Files\Microsoft Visual Studio 10.0\VC\include 中声明的私有成员\f流

这是它说错误的那一行

template<class _Elem,
    class _Traits> inline
    void swap(basic_ofstream<_Elem, _Traits>& _Left,
        basic_ofstream<_Elem, _Traits>& _Right)
    {   // swap _Left and _Right basic_ofstreams
    _Left.swap(_Right);
    }


这是我访问 fstream 的代码

char* stringPointer =  (char*) Marshal::StringToHGlobalAnsi(saveFileNameString).ToPointer();


ofstream sessionFile;
sessionFile.open(stringPointer, std::ios_base::in);
 Marshal::FreeHGlobal(IntPtr(stringPointer));`

先感谢您!!!!

4

2 回答 2

1

问题不在 Fstream.h 上,而是在您的代码上。

检查您是否没有将类的私有成员变量传递给 ofstream 或其他方法。

于 2011-04-19T18:37:29.133 回答
1

我刚刚遇到了这个问题,感谢 Luron 的评论,我想通了。

我发布解释以防有人遇到同样的问题:

流对象(ostream、istream 和派生类)没有复制构造函数,将这些对象之一传递给函数将调用复制构造函数,因此会导致错误。

于 2013-06-19T09:52:46.063 回答