fstream、ofstream、ostream、iostream的区别
Difference between fstream, ofstream, ostream, iostream
我正在参加 C++ 入门级别 class 的测验,我正在尝试理解一个问题。在网上搜索了很久没有得到答案,所以我来了。
Which of the following function declarations will accept either cout or a file stream
object as its argument?
A. void output( fstream &outFile);
B. void output( ofstream &outFile);
C. void output( ostream &outFile);
D. void output( iostream &outFile);
答案是C。
我知道 fstream、ofstream、ostream、iostream 之间的区别。
我不明白的是为什么 none 的其他选项能够接受 cout 或文件流对象作为参数。
答案是否像 ostream 对象包含能够作为参数传递的数据(char 等)一样简单?
如有任何信息,我们将不胜感激。
答案是C。问题是关于继承层次的。 std::cout
是 std::ostream
的实例。所有其他函数都接受 std::ostream 的子类,因此不能处理 std::cout
。 std::fstream
可以传递给他们所有人,但问题是关于两者。
我正在参加 C++ 入门级别 class 的测验,我正在尝试理解一个问题。在网上搜索了很久没有得到答案,所以我来了。
Which of the following function declarations will accept either cout or a file stream
object as its argument?
A. void output( fstream &outFile);
B. void output( ofstream &outFile);
C. void output( ostream &outFile);
D. void output( iostream &outFile);
答案是C。
我知道 fstream、ofstream、ostream、iostream 之间的区别。
我不明白的是为什么 none 的其他选项能够接受 cout 或文件流对象作为参数。
答案是否像 ostream 对象包含能够作为参数传递的数据(char 等)一样简单?
如有任何信息,我们将不胜感激。
答案是C。问题是关于继承层次的。 std::cout
是 std::ostream
的实例。所有其他函数都接受 std::ostream 的子类,因此不能处理 std::cout
。 std::fstream
可以传递给他们所有人,但问题是关于两者。