首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

c++满载时,引用的作用

2013-06-25 
c++重载时,引用的作用string operator + (string & str)string & operator (string & str)以这两个语

c++重载时,引用的作用
string operator + (string & str);

string & operator = (string & str);

以这两个语句为例,参数类型为引用与非引用的区别是什么呢? 返回值类型引用与非引用的区别是什么呢? 我试了一下,有无引用都可以正常运行呀! 这是怎回事?
c++?类?运算符?重载
[解决办法]
有无引用的确可以正常运行,主要涉及到一个效率问题。
参数类型为引用可以避免实体拷贝,即传入的就是实体本身,而不需要进行拷贝操作。
比如参数是一个类类型,那么如果不是引用传递,则会在参数传入的时候构造一个临时对象,并额外调用一次复制构造函数,而如果是引用传递则不需这些开销。
返回值为引用主要作用于“连续”操作,比如对"<<"的重载必须返回引用,这样才能使cout<<xx<<xx不报错,否则就不能进行连续输出流。

[解决办法]
为了实现链式表达式
[解决办法]

引用:
有无引用的确可以正常运行,主要涉及到一个效率问题。
参数类型为引用可以避免实体拷贝,即传入的就是实体本身,而不需要进行拷贝操作。
比如参数是一个类类型,那么如果不是引用传递,则会在参数传入的时候构造一个临时对象,并额外调用一次复制构造函数,而如果是引用传递则不需这些开销。
返回值为引用主要作用于“连续”操作,比如对"<<"的重载必须返回引用,这样才能使cout<<xx<<xx不报错,否则就不能进行连续输出流。


有点错误哈。
比如参数是一个类类型,那么如果不是引用传递,则会在参数传入的时候构造一个临时对象,要多调用一次析构函数。

热点排行