C++引用的问题
之前比较理解引用但是到类的时候就晕了问几个问题1.返回类的引用有什么作用?和返回类有什么区别?2.一个函数的参数是一个类的引用是不是可以类比到值传递那里?就是会改变引用对...
之前比较理解引用 但是到类的时候就晕了
问几个问题
1.返回类的引用有什么作用?和返回类有什么区别?
2.一个函数的参数是一个类的引用是不是可以类比到值传递那里?就是会改变引用对象的内容?有其他区别吗?
求高人谢谢! 展开
问几个问题
1.返回类的引用有什么作用?和返回类有什么区别?
2.一个函数的参数是一个类的引用是不是可以类比到值传递那里?就是会改变引用对象的内容?有其他区别吗?
求高人谢谢! 展开
2个回答
展开全部
第一个问题:
你是说返回对象的引用吧?引用实际上是一种安全的不需要使用解引用操作符*的指针,函数返回对象的引用实际上就返回了一个32位数的指针,存放在eax寄存器里;而返回对象的话需要创建一个该类的临时对象,并调用拷贝构造函数用原有的对象对其初始化,比如函数内有个类A的对象a,用return a返回对象的话实际上创建了一个新的临时对象,并将a的数据拷贝到临时对象中。
可以看出,相比之下直接返回对象既浪费函数栈空间,又浪费时间。
问题二:
引用作为函数参数也是传递一个指针进去,不是值传递,这样在函数内部通过引用修改对象的内容,存在于函数外部的对象的内容会得到改变。
你是说返回对象的引用吧?引用实际上是一种安全的不需要使用解引用操作符*的指针,函数返回对象的引用实际上就返回了一个32位数的指针,存放在eax寄存器里;而返回对象的话需要创建一个该类的临时对象,并调用拷贝构造函数用原有的对象对其初始化,比如函数内有个类A的对象a,用return a返回对象的话实际上创建了一个新的临时对象,并将a的数据拷贝到临时对象中。
可以看出,相比之下直接返回对象既浪费函数栈空间,又浪费时间。
问题二:
引用作为函数参数也是传递一个指针进去,不是值传递,这样在函数内部通过引用修改对象的内容,存在于函数外部的对象的内容会得到改变。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询