发布网友 发布时间:2024-05-11 12:09
共3个回答
热心网友 时间:2024-05-17 00:23
运算符重载,是对现有操作符使用于自定义用户类型的一种扩展,但具体的性质不能变,如<<表示流操作符左侧对象为流的本质不能变,+为两元操作符本质不能变,再如,对于->重载必须返回指针类型不可变!热心网友 时间:2024-05-17 00:23
如果没猜错,ostream是个类热心网友 时间:2024-05-17 00:24
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”类的要求。