MyException - 我的异常网
当前位置:我的异常网» C++ » 一段C++代码,把小弟我给难住了

一段C++代码,把小弟我给难住了

www.MyException.Cn  网友分享于:2013-05-22  浏览:2次
一段C++代码,把我给难住了
const Point3d & SetToMin (const Point3d & p2)
  {
  if (p2.x[0] < x[0]) x[0] = p2.x[0];
  if (p2.x[1] < x[1]) x[1] = p2.x[1];
  if (p2.x[2] < x[2]) x[2] = p2.x[2];
  return *this;
  }
如上面所示,Point3d是一个类名,SetToMin ()为一个函数,在类名与函数名之间有一个地址运算符,这是什么意思呢?还有,在函数的形参中也有一个& ,这个的作用又是什么,是在不懂,请高手指点。

------解决方案--------------------
那叫引用

就是防止临时 拷贝构造的呃
------解决方案--------------------
那不叫做引用,可以把引用看成变量的别名,作用是防止创建临时变量,进而减少数据构造函数及拷贝函数的调用
------解决方案--------------------
Point3d&是函数的返回类型,表示返回的是Point3d类型的引用,函数里面的 const Point3d &p2 表示参数的类型是一个Point3d的引用。两个const,前面一个的意思是别修改我返回给你的东西,第二个的意思是我也不会修改你传给我的东西。
------解决方案--------------------
去翻翻C++书上关于“引用”的章节就清楚鸟
------解决方案--------------------
探讨

Point3d&amp;是函数的返回类型,表示返回的是Point3d类型的引用,函数里面的 const Point3d &amp;p2 表示参数的类型是一个Point3d的引用。两个const,前面一个的意思是别修改我返回给你的东西,第二个的意思是我也不会修改你传给我的东西。

------解决方案--------------------
嗯,引用引用。
------解决方案--------------------
1、在类名与函数名之间有一个地址运算符,这是什么意思呢?

返回自己,可以继续执行只读操作,如:
Point3d p1,p2;
...
Point p = p1.SetToMin(p2).x[0];

2、还有,在函数的形参中也有一个& ,这个的作用又是什么?

传递参数时以引用方式,这样就可以减少复制成本
如果p2对象作为值参传入,至少需要拷贝其x[0]、x[1]、x[2]
------解决方案--------------------
如果LZ能理解
SomeClass* Function();

同时知道C++中的引用这个东西

相信应该也能理解
SomeClass& Function();


------解决方案--------------------
引用的规则:
(1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。


2
)不能有
NULL
引用,引用必须与合法的存储单元关联(指针则可以是
NULL
)。

(3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象),这里指不能再绑定其他的对象,只要不是const,就可以改变值,即可以通过引用改变绑定对象的值,因为它们其实是相同的。


------解决方案--------------------
这就是引用,多看看书

文章评论

Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
旅行,写作,编程
旅行,写作,编程
代码女神横空出世
代码女神横空出世
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
中美印日四国程序员比较
中美印日四国程序员比较
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
鲜为人知的编程真相
鲜为人知的编程真相
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
程序员的鄙视链
程序员的鄙视链
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
那些争议最大的编程观点
那些争议最大的编程观点
如何成为一名黑客
如何成为一名黑客
10个调试和排错的小建议
10个调试和排错的小建议
我的丈夫是个程序员
我的丈夫是个程序员
我是如何打败拖延症的
我是如何打败拖延症的
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
程序员应该关注的一些事儿
程序员应该关注的一些事儿
为什么程序员都是夜猫子
为什么程序员都是夜猫子
总结2014中国互联网十大段子
总结2014中国互联网十大段子
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
程序员和编码员之间的区别
程序员和编码员之间的区别
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
程序员必看的十大电影
程序员必看的十大电影
 程序员的样子
程序员的样子
漫画:程序员的工作
漫画:程序员的工作
Java程序员必看电影
Java程序员必看电影
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
一个程序员的时间管理
一个程序员的时间管理
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
编程语言是女人
编程语言是女人
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有