我的程序非常简单,所有的困惑都发生在 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”)的隐式删除复制构造函数
谁能帮我解决这个问题,非常感谢! :)
最佳答案
在函数的签名中
int write(int TYPE,int *oc,int nx,int ny,ofstream otf, double ck)
参数otf
的类型是ofstream
,表示按值调用;因此,otf
将是调用方协议(protocol)的拷贝。您可以将签名更改为
int write(int TYPE,int *oc,int nx,int ny,ofstream& otf, double ck)
这将使用引用调用并将使用与调用者相同的对象。
关于c++ - 另一个函数对 ofstream 的基本使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29118106/