c++中重载输出操作符,为什么要返回引用
首先因为ostream对象不能复制,所以必须是引用;其次引用可以少一次拷贝,提高效率;最后,为了体现连续性,实现连续输出,达到用多个输出操作符操作一个ostream对象的效果,如果不是引用,程序返回的时候就会生成新的临时对象,也就是说,
C++重载=,+=等时候为什么要用返回引用
如果不返回引用,后面对流的操作就是无效的了,因为你返回的只是某时流的一个拷备,以后对它的操作不会显示出来了。就像上面为什么我可以连用两次<<操作符?如果不是返回引用,第二次插入操作将会将b插入到那个临时的流对象,而将会显示的会是那个全局的流,所以就看不到b了。就正如我们程序开始申请一...
C++运算符重载,+-*\/的重载,返回值为什么是对象而不是对象的引用?而流操...
分析不能用引用的原因: 函数传入了两个参数a,b,并且+只能传入两个参数(c++不允许自己创造运算符),这样就限定了和sum不能作为参数传入,所以sum只能是一个函数里的临时变量,但是临时变量在函数结束时是要销毁的,那么函数调用玩,sum就没有了, 如果返回引用,引用源都已经没有了,还怎么引用,...
为什么c++ 重载输出运算符的时候要取地址 ostream &operator<<?_百度...
&不表示取地址,而表示引用。由于ostream对象不可复制,因此无论是作为参数传入,还是作为返回值传出,都必须使用引用形式。即ostream& operator<<(ostream&, MyClass)的定义方式是正确的,而ostream operator<<(ostream, MyClass)的定义方式是错误的。
C++中返回引用有什么用途
C++中当返回一个大型的类对象时,省去了按值传递返回的拷贝过程,可以提高效率,在运算符重载时,返回一个引用类对象可以实现运算符的连运算,比如定义一个类A,定义类A的四个对象,a,b,c,d当重载+号运算符时,返回一个引用可以实现a=b+c+d;等等,返回一个引用应注意,不能返回一个局部变量......
C++中返回引用的作用是什么?没有&就是不引用也没多大问题吧?
对于返回一个流指针则不能连续使用<<操作符。因此,返回一个流对象引用是唯一选择。这个唯一选择很关键,它说明了引用的重要性以及无可替代性,也许这就是C++语言中引入引用这个概念的原因吧。赋值操作符=。这个操作符象流操作符一样,是可以连续使用的,例如:x = j = 10;或者(x=10)=100;赋值...
C++中值返回和引用返回有什么区别?在什么情况下应该用引用返回
因为C++中的对象是要占用一定的内存空间的,返回引用的话就可以减少一个复制对象的过程,从而减少内存开销。 举个例子吧: 假设有一个类A,有成员函数A& fun();返回的是引用。 那么在main()里我们定义一个对象A a;然后调用fun(); 即a=fun(); 在这调用的过程中作了哪些动作呢? 其实就只作了...
C++中运算符重载问题,分别说明下面const的作用以及为什么要用引用
c.int* const fun3() \/\/调用时 int * const pValue = fun2();\/\/我们可以把fun2()看作成一个变量,即指针本身不可变。一般情况下,函数的返回值为某个对象时,如果将其声明为const时,多用于操作符的重载。通常,不建议用const修饰函数的返回值类型为某个对象或对某个对象引用的情况。原因...
C++ 为了实现链式赋值 a=b=c;为什么需要符号重载函数返回引用
引用&符号的用意都是为了绑定不同的”变量“,使它们指向同一块内存地址,从而保证操作的一致性,即对任何一个被绑定的变量作处理,那么被绑到同一块地址的另外一个变量也就进行了相同的处理。同时,也能避免重复开辟新的内存空间,减少资源的消耗。比如你要重载 +=操作符,定义如下 class YourClass{ ...
c++返回引用的问题
有些复杂,不知道明白了没有,因为这个确实不是很好理解。至于返回一个类的指针,那就更不对了,因为在函数中使用了对象都会被析构,所以这个返回的指针实际上是一个野指针,几乎注定要崩溃,除非你所指向的类对象是一个static静态属性的。而引用就不一样了,引用告诉了计算机,你不必给我复制一个副本...