c++,编程 为什么不能用Point p替换? Point&p与Point p区别在哪呢?我发现二

c++,编程为什么不能用Pointp替换?Point&p与Pointp区别在哪呢?我发现二级中有些题目同样在形参列表中用的Pointp而不是Point&p。求大神详细解答... c++,编程
为什么不能用Point p替换?
Point&p与Point p区别在哪呢?我发现二级中有些题目同样在形参列表中用的Point p而不是Point&p。求大神详细解答,谢!
展开
 我来答
White_MouseYBZ
2015-08-20 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6653万
展开全部
其实关键是在Point前面有个const!如果没有const,那么用Point&和Point都应该是可以的。因为有了const,const Point p这样的声明,p就是不能被改变的对象“常量”,而调用这个函数时要为p拷贝一个对象实参值进来,这不自相矛盾吗?所以只好用const Point& p。这时的p是一个所谓引用,即一个对象的别名,实际就是调用函数时的实参自身,矛盾就被化解了。另,用const Point& p效率也高,不用在函数中为p开辟临时空间,也不用把一个对象内容一项一项地拷贝到这个临时空间中来……完全个人理解,希望对你有帮助!
追问
谢!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式