c++类的一个小问题求大神给解释

作者:用户 来源:互联网 浏览:386 次 时间:2016-03-25 11:37:58

c++

c++类的一个小问题求大神给解释 - 摘要: c++类的一个小问题求大神给解释c++的类里面,常引用作为函数参数和直接用类的对象做形参有什么区别?比如我写一个类p,然后函数写doublefun(constp&u){……}这个和double

问题描述

c++类的一个小问题求大神给解释

c++的类里面,常引用作为函数参数和直接用类的对象做形参有什么区别?比如我写一个类p,然后函数写double fun(const p & u){……}这个和double fun(p u){……}的运行结果一样,不过我想他们本质上应该是有区别的吧。求大神解释

解决方案

如果你的返回值是p或者u,那么你就知道不一样了,你试试看

解决方案二:
  1. 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样. 当引用作为参数传入后,函数中对参数的操作,也会影响到传入变量
  2. 而实参, 会在函数copy一份, 并且在方法中修改传参不会改变传入的值
解决方案三:

区别在参数的类型,const P&对于类类型来说,效率更高,少了copy复制操作

解决方案四:

关于util包中的LinkedList类的一个小问题

解决方案五:

第一种情况是使用参数指向的原来的那个对象,而第二种情况其实操作的是一个副本对象。

解决方案六:

2楼3楼4楼的回答都很正确哈,楼主把3为的信息都理解一下就ok了。引用主要用于数值传递,一个参数作为引用变量传递给函数,经过函数的一系列处理后,这个引用变量的数值发生变化,此引用变量无需使用return方式返回也会自然的保存改变后的数值,楼主可以自己试验做一下就明白了。

解决方案七:

const p& 和 p 的区别是"p&"引用指的是你传进去的对象本身,而"p"在使用的时候会复制对象,例如p p1,如果函数形参类型是const p&,那么传进去的对象就是
p1本身,反之,如果函数形参类型是p,那么在传进去的对象是p1的复制对象,而不是p1对象本身。还有const p&和p&的区别表示p对象能不能被函数修改。

解决方案八:

http://blog.csdn.net/tianxiaolu1175/article/details/46848999
这篇博客说得很清楚,可以去看看

解决方案九:

const p& 和 p 的区别是"p&"引用指的是你传进去的对象本身,而"p"在使用的时候会复制对象,例如p p1,如果函数形参类型是const p&,那么传进去的对象就是
p1本身,反之,如果函数形参类型是p,那么在传进去的对象是p1的复制对象,而不是p1对象本身。还有const p&和p&的区别表示p对象能不能被函数修改。

解决方案十:

double fun(const p & u){……}
表示参数u是对实际参数一个常引用。调用函数fun()时,u成为实际参数的一个别名,没有对象复制,在函数fun()内,u相当于一个常对象,可以引用,但不可修改。利用u只能调用u的常成员函数,也就是函数头部后边有const修饰的成员函数,其他的成员函数不可调用。
double fun(p u){……}
表示参数u是一个实际参数的复制品。调用函数fun()时,u成为实际参数的复制品,复制之后,u和实际参数是两个相互独立的对象。而且由于没有const限定u,u是一个可以引用、可以改变的对象。

【云栖快讯】阿里云栖开发者沙龙(Java技术专场)火热来袭!快来报名参与吧!  详情请点击
云栖社区(yq.aliyun.com)为您免费提供c++类的一个小问题求大神给解释相关信息,包括 c++ 的信息 ,所有c++类的一个小问题求大神给解释相关内容均不代表云栖社区的意见! 该页面h5页面的地址是:https://m.aliyun.com/yunqi/wenzhang/show_1631,您可以点击c++类的一个小问题求大神给解释-手机站访问。
双十二
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

40+云计算产品,6个月免费体验

现在注册,免费体验40+云产品,及域名优惠!

云服务器9.9元/月,大学必备

热点导航