为什么c++ 重载输出运算符的时候要取地址 ostream &operator<<?

设计函数的返回类型为取地址对函数有什么影响
例如:
int a=0;
int &test(int a){return a;}

int test(int a){return a;}结果一样,那&符号的意义是什么?

&不表示取地址,而表示引用。由于ostream对象不可复制,因此无论是作为参数传入,还是作为返回值传出,都必须使用引用形式。即ostream& operator<<(ostream&, MyClass)的定义方式是正确的,而ostream operator<<(ostream, MyClass)的定义方式是错误的。
温馨提示:内容为网友见解,仅供参考
无其他回答

为什么c++ 重载输出运算符的时候要取地址 ostream &operator<<?
&不表示取地址,而表示引用。由于ostream对象不可复制,因此无论是作为参数传入,还是作为返回值传出,都必须使用引用形式。即ostream& operator<<(ostream&, MyClass)的定义方式是正确的,而ostream operator<<(ostream, MyClass)的定义方式是错误的。

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

c++中文件的读入和输出是怎么样的?
在C++中,有一个stream这个类,所有的I\/O都以这个“流”类为基础的,包括我们要认识的文件I\/O,stream这个类有两个重要的运算符:1、插入器(<<)向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout<<"Write Stdout"<<'\\n';就表示把字符串"Write S...

c++中运算符(\\" << \\")重载ostream&是什么意思
operator是进行运算符重载的关键词,它后面就是重载的运算符,左侧是流,右侧是流处理的对象。这样你就可以处理如何输入或输出该对象

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

为什么在C++中vector string对象不能直接输出,需要自己遍历,然后逐个...
真的需要cout << text;这种写法的话,自己重载一个 operator<< 函数也是很轻松的事,因为你自己知道怎样输出最合适,以下就是在不用C++11的情况下,一个简单且可扩展的 operator<< 重载 std::ostream& operator<<(std::ostream& o, std::vector<std::string> const& v){ for (std::vector...

C++运算符重载,+-*\/的重载,返回值为什么是对象而不是对象的引用?而流操...
分析不能用引用的原因: 函数传入了两个参数a,b,并且+只能传入两个参数(c++不允许自己创造运算符),这样就限定了和sum不能作为参数传入,所以sum只能是一个函数里的临时变量,但是临时变量在函数结束时是要销毁的,那么函数调用玩,sum就没有了, 如果返回引用,引用源都已经没有了,还怎么引用,...

c++谭浩强的一段话怎么理解呢..我不懂它的前因后果
operator+(),所以要求第一个(左侧的)参数必须为该类的对象,否则没法调用成员函数 其次,运算符“>>”“<<”要求函数的第一个参数和函数的类型都必须是istream&和ostream&类型,这是因为要连续输出时要求的,谭浩强书里有讲到 所以不能把他们重载为成员函数,只能重载为友元函数或普通函数。

C++重载=,+=等时候为什么要用返回引用
以ostream为例,重载函数处理的参数是调用调重载运算符的左操作数,比如 cout << a << b;\/\/ int a,b;为什么要返回引用,我说你仔细想一下就明白了,你的函数会修改你操作的流,而流是全局的,不是临时变量,是系统托管的。如果不返回引用,后面对流的操作就是无效的了,因为你返回的只是某时...

c++求operator<<的例子
我估计是要重载流输出运算符<<,比如cout<<a;原来的形式是 operator<<(cout,a); 由于<<需要用到两个类,一个是ostream类,cout就是他的对象,是负责输出的类;另一个是用户自定义类。所以重载是应该用 友元函数 重载。如下:include <iostream>using namespace std;class Date{friend ostream& ...

相似回答