另一个函数对ofstream的基本使用

时间:2015-03-18 09:21:14

标签: c++ ofstream

我的程序非常简单,所有混乱都发生在传递ofstream指针的周围,如下所示。

主程序:

int main()
{...
ofstream otf;
otf.open("hex_movie.xyz");
....
write(int (1),oc,nx,ny,otf,ck)
}

在write.h中,它以

开头
int write(int TYPE,int *oc,int nx,int ny,ofstream otf, double ck)
{.... return 0;}

我使用Xcode来调试它,它显示(仅在写入功能的行上,抱歉我无法上传屏幕截图)

Xcode / GGK / GGK / ggk.cpp:110:28:调用隐式删除的' ofstream' (又名' basic_ofstream')

有人可以帮我这个,非常感谢你! :)

2 个答案:

答案 0 :(得分:3)

在功能的签名

int write(int TYPE,int *oc,int nx,int ny,ofstream otf, double ck)

参数otf的类型为ofstream,表示按值调用;因此,otf将是来电者的一​​个副本。您可以将签名更改为

int write(int TYPE,int *oc,int nx,int ny,ofstream& otf, double ck)

将使用引用调用,并将使用与调用者相同的对象。

答案 1 :(得分:2)

您目前正在通过值otf传递尝试通过引用传递

int write(int TYPE,int *oc,int nx,int ny,ofstream& otf, double ck)