c++中运算符(\" << \")重载ostream&是什么意思

friend ostream & operator + (ostream &os, const CPolynomial&);
为什么一定要加这个

运算符重载,是对现有操作符使用于自定义用户类型的一种扩展,但具体的性质不能变,如<<表示流操作符左侧对象为流的本质不能变,+为两元操作符本质不能变,再如,对于->重载必须返回指针类型不可变!
即,即使进行运算符重载,也只是有限自由!
friend ostream & operator << (ostream &os, const CPolynomial&)
operator是进行运算符重载的关键词,它后面就是重载的运算符,左侧是流,右侧是流处理的对象。这样你就可以处理如何输入或输出该对象
温馨提示:内容为网友见解,仅供参考
第1个回答  2006-12-24
如果没猜错,ostream是个类
ostream&的意思是返回值是类的一个引用,就是直接对返回的类的对象进行操作(共享一个地址,加这个就是可以对形参进行修改
后面的ostream &os就是传递一个类的对象的地址
第2个回答  2021-07-15

friend ostream &operator<< (ostream &out, Complex &obj){...}

以上文为例:

    “friend”声明函数为“ostream”类的友元函数

    “ostream”声明后文的函数为“ostream”类

    “operator<<(ostream &out, Complex &obj)”意为对双目流运算符“<<”进行重载,对象为“ostream”类的out的引用与“Complex”类的obj的引用

    “&operator<< (ostream &out, Complex &obj)”意为函数“&operator<< (ostream &out, Complex &obj)”的返回值以引用的形式返回

“ostream”类是一种特殊的类,需要作为“左值”,不能直接赋值或者拷贝(即以一个会被释放的临时变量返回),上文的函数执行完后(执行语句省略了)将以一个“ostream”类对象的引用返回,才符合“ostream”类的要求。

c++中运算符(\\" << \\")重载ostream&是什么意思
运算符重载,是对现有操作符使用于自定义用户类型的一种扩展,但具体的性质不能变,如<<表示流操作符左侧对象为流的本质不能变,+为两元操作符本质不能变,再如,对于->重载必须返回指针类型不可变!即,即使进行运算符重载,也只是有限自由!friend ostream & operator << (ostream &os, const CPo...

C++重载运算符。 太TM难了。 进来看看
ostream &os; \/\/这句的意思是,os&是ostream类型的一个引用,至于他引用的是哪个变量,这要看函数传递过来的实参了,在这里ostream是一个类,是在C++库文件中写的一个类,他是使用class创建的,比如class ostream{...};当然,这个类里的具体内容就不讲了吧。friend ostream& operator<<(ostream...

ostream& 是什么类型
ostream是c++中的输出流,是一个定义输出到显示(输出)设备上的一个类 & 在c++中表示引用,即使用的当前值,而不是通过自动复制的

c++谭浩强的一段话怎么理解呢..我不懂它的前因后果
首先,运算符重载实质上是函数重载,比如operator+(int i)编译器解释为调用某类(假如stu)的成员函数stu.operator+(),所以要求第一个(左侧的)参数必须为该类的对象,否则没法调用成员函数 其次,运算符“>>”“<<”要求函数的第一个参数和函数的类型都必须是istream&和ostream&类型,这是因为要连续...

C++里面ostream是干什么的
ostream是output stream的简称,即输出流。在C++中用来输出。一个典型的输出流对象就是在C++中标准输出流cout。在C++中,很少自定义ostream的对象,更多的是直接使用cout。ostream这个类型,往往出现在<<操作重载中,作为某个类的友元函数出现。比如对于class A, 可以定义 ostream & operator << (ostream ...

C++中,out<<表示什么意思,数据类型是ostream
关于C++中的重载,对于输出流的重载。ostream &operator<<(ostream&out,const people&r);你这个算是标准写法了:1)为了支持连续,输出必须返回一个ostream的引用。如:cout<<a<<b;连续输出。2)也只能返回一个ostream的引用,因为ostream类只有一个对象就是cout,ostream类是不让你自己定义对象的,该...

c++里面ostream是干什么的
C++中的ostream是一个类,它位于``头文件中。ostream代表“输出流”,主要用于向输出设备发送数据。这个类提供了一系列的操作符重载函数,如<<操作符,允许程序员方便地向流中插入数据。例如,cout是一个常见的ostream对象,用于在屏幕上显示输出。2. 具体作用:在C++编程中,当我们想将某些数据展示给...

c++中的endl是什么作用
endl,位于名字空间std,是一个manipulator,意思是控制流输入输出的函数(或functor,即重载了函数调用运算符的对象)。假设ostr为ostream,则ostr<<endl等价于”ostr<<"\\n"<<flush;“,其中flush也是iomanipulator,作用是立即清空流的缓冲区。对任意一个manipulator foo, ostr<<foo; 调用 foo(ostr);...

C++运算符重载,+-*\/的重载,返回值为什么是对象而不是对象的引用?而流操...
ostream& operator<<(ostream& out, const A& a) { out<<A.x<<' '<<A.y<<endl; retrun out;} 能返回引用,首先是因为out是作为参数传入的,不是函数的临时变量,函数结束时它仍然存在,这样就可以引用了。 再者,返回引用效率高,不用拷贝一个新的,直接返回它自己。 而且,返回引用有助...

C++中=运算符和<<运算符有什么区别
<<是左移运算符号,是把操作数看成二进制数,然后左移指定的位数,生成新的值 而C++标准库的Stream类重载了<<运算符,使之成为流的输出符号 和=(赋值运算符)没有关系

相似回答