我有一个输入操作符的函数原型,但我不确定它们是什么以及它们是什么意思,我认为istream是一个类型为stream& sourceFileStream的对象是通过引用传递的。有人可以解释每个参数的含义吗?
istream& operator >>(istream &sourceFileStream, Chart &aChart)
答案 0 :(得分:0)
istream是输入流:http://www.cplusplus.com/reference/iostream/istream/
sourceFileStream
和aChart
都是通过引用传递的。
答案 1 :(得分:0)
istream&
是返回类型,它在函数完成后通过引用返回sourceFileStream
参数。
这样做就可以链接运算符(在同一语句中多次使用它们)。
你更熟悉链接输出运算符我敢打赌......所以,例如,你可以使用<<操作员多次在这一行:
int x;
std::cerr << std::hex << x << std::endl;
因为它返回一个引用,所以它正在操作的流(cerr)。
istream& sourceFileStream
作为参数是输入流(读取文件或类似的东西)。它通过引用传递,因此您正在修改传入的流,然后返回它,原因如上所述(最有可能通过在读取中向前读取并移动其内部指针来修改它)。
您也通过引用传递图表对象,最有可能从流内容中填充其内部数据成员。因此,在使用此运算符结束时,将按照此函数定义中指定的流内容填充图表的成员。 PS:通过引用意味着传递给此函数的对象将被直接修改,因为aChart将是该对象的别名。如果它不是通过引用,那么该对象的副本将被修改,并且该函数将是无用的。