我正在用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等)?
非常感谢任何信息。
答案 0 :(得分:3)
答案是C.问题是关于继承层次结构。 std::cout
是std::ostream
的一个实例。所有其他函数都接受std :: ostream的子类,因此无法处理std::cout
。 std::fstream
可以传递给所有人,但问题是两者都有。