我有一个关于fstream的构造函数和.open函数的简单问题.以下两个表达式之间是否有任何差异?
fstream("file.txt",ios::app);
Run Code Online (Sandbox Code Playgroud)
fstream fin;
fin.open("file.txt",ios::app);
Run Code Online (Sandbox Code Playgroud)
对于(1),我不需要再次使用.open函数了吗?两个表达式之间的任何功能差异?
我的第二个问题是,如果我将openmode留空,那么默认的开放模式是什么?
两个片段后面的对象状态没有区别.
为什么有两个版本?
存在ctor是为了创建fstream
与流直接关联的对象.
的open
存在,因为这些类型的对象不能被复制.因此,您无法fstream
通过编写以下内容将对象分配给其他流:
fstream foo('bblskd');
// ...
foo = fstream('skdjf');
Run Code Online (Sandbox Code Playgroud)(注意,此接口是在移动语义之前设计的).
您可以在此处找到默认的打开模式.