c++ 操作符重载的形参为什么一般都是引用类型

比如加号的重载 为什么形参要用引用类型呢 是为了提高效率节省空间么

第1个回答  2013-02-22
是的,防止拷贝,节约时间和空间,有的是运算符的语义要求.
引用通常用const引用。
第2个回答  2013-02-21
使用引用(通常是常引用),的确是为了提高效率,,有些时候,我们甚至需要使用
C++0x 新增的右值引用来进一步优化,譬如:

my_string operator+ (my_string && str1, const my_string & str2);
my_string operator+ (const my_string & str1, my_string && str2);本回答被提问者采纳
第3个回答  2013-02-21
提高效率节省空间只是一部分,用引用关键是需要改变这个变量的值

C++中运算符重载问题,分别说明下面const的作用以及为什么要用引用
a.传递过来的参数在函数内不可以改变(无意义,因为Var本身就是形参)void function(const int Var); b.参数指针所指内容为常量不可变void function(const char* Var); c.参数指针本身为常量不可变(也无意义,因为char* Var也是形参)void function(char* const Var); d.参数为引用,为了增加效率同时...

c++中重载输出操作符,为什么要返回引用
1.第一个形参为对ostream对象的引用,在该对象上将产生输出,ostream为非const,因为写入到流会改变流的状态;该形参是一个引用,因为不能复制ostream对象(在c++中定义的标准输入输出流类istream和ostream,其中拷贝构造函数和赋值操作符函数都被放置在了private部分,且只有声明,没有定义)。2.第二个形...

C++中引用做为形参的作用是什么?就是普通的不行吗?
引用是地址传值,作为引用的形参数值被修改的同时,也修改了对应实参的值。你不用引用当然可以,只是实参的值不会随着形参被修改。引用还有另外一个作用,声明这个变量的时候不会浪费额外的内存空间,对引用的形参的操作实际就是对实参的操作。

关于C++重载运算符
运算符重载是对已有的运算符赋予多重含义 必要性 C++中预定义的运算符其运算对象只能是基本数据类型,而不适用于用户自定义类型(如类)(一) C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载。(二) C++允许重载的运算符C++中绝大部分的运算符允许重载.不能重载的运算符只有5个:(...

C++重载运算符。 太TM难了。 进来看看
是正确的,因为函数f()是类A的成员。注:cout和cin都是C++中iostream类的一个对象,对于cout<<使用的<<运算符,是在类中被重载了的,因此<<运算符就是一个重载的操作运算符。将操作符重载函数声明为友元时,这时的操作符重载函数必须多一个形参,若操作符成员函数是类的成员函数,则要少一个形参...

C++中为什么重载前置++运算符要加个&?
就是这个意思吧。好多重载操作符,作用其实都是这样的。2、引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。 引用的声明方法:类型标识符 &引用名=目标变量名。

求助,关于一道C++函数重载的问题
你有这样的问题大概是因为双目操作符比如*,可以有x.operator*(y)这种写法吧? 但是这个不改变*是二目操作符的事实。C++规定:双目操作符重载作为成员函数时只能有一个形参,调用方为左操作数,形参为右操作数。所以x.operator*(y)等价于x*y。2、重载的是后置++。后置++重载作为成员函数时跟你...

C++中引用(&)的用法和拷贝\/赋值函数的区别
一、引用简介引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名;【例1】:int a; int &ra=a; \/\/定义引用ra,它是变量a的引用,即别名说明:(1)&在此不是求地址运算,而是起标识作用。(2)类型标识符是指目标变量的类型。(3)声明引用...

c++运算符重载
c++的一大特性就是重载(overload),通过重载可以把功能相似的几个函数合为一个,使得程序更加简洁、高效。在c++中不止函数可以重载,运算符也可以重载。由于一般数据类型间的运算符没有重载的必要,所以运算符重载主要是面向对象之间的。在进行对象之间的运算时,程序会调用与运算符相对应的函数进行处理,...

c++重载运算符号
1.运算符重载定义:C++中预定义的运算符的操作对象只能是基本数据类型。但实际上,对于许多用户自定义类型(例如类),也需要类似的运算操作。这时就必须在C++中重新定义这些运算符,赋予已有运算符新的功能,使它能够用于特定类型执行特定的操作。运算符重载的实质是函数重载,它提供了C++的可扩展性,也是...

相似回答
大家正在搜