【C++】关于I/O系统的基础问题

来源:百度知道 编辑:UC知道 时间:2024/06/30 21:41:16
你好,以下是我书中的一个例子:

ostream &operator<<(ostream &stream,three_d obj)
{
stream<<obj.x<<","<<obj.y<<",";

cout<<obj.z<<"\n";//书上写流cout是被硬编码到函数中的,这限制了函数可被使用的环境。此处不能使用!
——这句话是什么意思?"被硬编码到函数"那是个什么函数?"这限制了函数可被使用的环境"哪个函数又被限制了-_-(~外国佬写的书就是爱缺主语)

return stream;
}

PS:书上还补充到“运算符<<可以应用到任何一种流,并且<<表达式中的流对象被作为参数传递给了函数”——这里的函数指的是哪个函数?
我比较笨,请说得再直白一些

这个问题可以这样理解:
通常情况下,我们要将结果输出到显示屏上,应用 cout 就够了.不过,cout仅仅是输入输出流中的一种,它是在头文件<iostream>中定义的一个输入输出流对象,使用时还必须确认是在std的域内的,因此限制了它的使用.所谓的硬编码,可以理解为系统自带的.当解决一些特殊问题时,比如您给的例子,函数中的参数为输入输出流对象,就不能用系统自带的,而要自己定义了.
最后一个问题:函数应该指的是"operator <<"
补充:
简而言之,cout 只是输入输出流的一种,不是所有情况都能用.像你举的这个函数的例子就只能用一般的输入输出流ofstream.