fstream,ofstream,ostream,iostream之间的区别

时间:2017-10-11 14:03:03

标签: c++ fstream iostream ofstream ostream

我正在用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等)?

非常感谢任何信息。

1 个答案:

答案 0 :(得分:3)

答案是C.问题是关于继承层次结构。 std::coutstd::ostream的一个实例。所有其他函数都接受std :: ostream的子类,因此无法处理std::coutstd::fstream可以传递给所有人,但问题是两者都有。