首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

ofstream+指针解决方法

2013-01-05 
ofstream+指针源代码--------------------------------------------------------------------------...cla

ofstream+指针
源代码
--------------------------------------------------------------------------...
class OutStream{
private:
ofstream outFile;
string filename;

public:
OutStream(string filename) : filename(filename) {
outFile.open(filename.c_str(), ios::app , 0);
if (!outFile) {
printf("create file %s failed , exit !\n", filename.c_str());
exit(1);
}
}

~OutStream() {
outFile.close();
}

ofstream getoutStream() { return outFile; }

         // 这个程序报错如下  ???????????????问题出在此处:如果改成
         // ofstream getoutStream(){ return &outFile;}就正确了,请教为什么??????????非常感谢!!!

string getFileName() { return filename; }
};
...



运行结果
--------------------------------------------------------------------------
1>------ 已启动生成: 项目: test2, 配置: Debug Win32 ------
1>生成启动时间为 2010/11/28 19:15:18。
1>ClCompile:
1>  google_c++.cpp
1>d:\program files\microsoft visual studio 10.0\vc\include\fstream(1116): error C2248: “std::basic_ios<_Elem,_Traits>::basic_ios”: 无法访问 private 成员(在“std::basic_ios<_Elem,_Traits>”类中声明)
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          d:\program files\microsoft visual studio 10.0\vc\include\ios(176) : 参见“std::basic_ios<_Elem,_Traits>::basic_ios”的声明
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          此诊断出现在编译器生成的函数“std::basic_ofstream<_Elem,_Traits>::basic_ofstream(const std::basic_ofstream<_Elem,_Traits> &)”中
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>c:\users\administrator\documents\visual studio 2010\projects\test2\test2\google_c++.cpp(94): error C2819: “std::basic_ofstream<_Elem,_Traits>”类型没有重载成员“operator ->”
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>


1>          ]
1>          是否改用“.”?
1>c:\users\administrator\documents\visual studio 2010\projects\test2\test2\google_c++.cpp(94): error C2232: “->std::basic_ostream<_Elem,_Traits>::write”: 左操作数有“class”类型,使用“.”
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>
1>生成失败。
1>
1>已用时间 00:00:01.10
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
--------------------------------------------------------------------------
[解决办法]
板书太差了!

热点排行
Bad Request.