【发布时间】:2017-10-11 14:03:02
【问题描述】:
我正在参加一个关于 C++ 入门级课程的测验,我正在尝试理解一个问题。在网上搜索并没有得到答案,所以我在这里。
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 之间的区别。
我不明白为什么其他选项都不能接受 cout 或文件流对象作为参数。
答案是否像 ostream 对象包含可以作为参数传递的数据(char 等)一样简单?
任何信息将不胜感激。
【问题讨论】:
-
或许this C++ I/O reference及其继承层次图能帮上忙?
-
我会选择
D,因为可以输入和输出文件流。答案C仅输出。 -
@ThomasMatthews:
D不起作用,因为您不能将std::cout传递给它;这不是std::istream。 -
如果我有一个
ifstream用于读取,它是一个文件流,我不能使用C。这个问题应该改写。 :-)
标签: c++ fstream iostream ofstream ostream