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

Basic use of ofstream by another function

我的程序非常简单,所有的混乱都发生在传递 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调试了一下,显示出来了(只在write函数那一行,不好意思不能上传截图)

Xcode/GGK/GGK/ggk.cpp:110:28:调用 'ofstream'(又名 'basic_ofstream')[= 的隐式删除复制构造函数12=]

谁能帮我解决这个问题,非常感谢! :)

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

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

在函数的签名中

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)

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