加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用&C

发布时间:2020-12-16 05:34:36 所属栏目:百科 来源:网络整理
导读:我想知道如何使用访问某个内存位置改变了一个函数调用的性质.例如,如果我已经写了一个函数来设置圆的半径 //True,if success,False if radius is off-screenbool SetRadiusCircle(Circle b,int r) 这是我教授给我的作业中给出的一个例子.我只想知道“”他包
我想知道如何使用&访问某个内存位置改变了一个函数调用的性质.例如,如果我已经写了一个函数来设置圆的半径
//True,if success,False if radius is off-screen
bool SetRadiusCircle(Circle &b,int r)

这是我教授给我的作业中给出的一个例子.我只想知道“&”他包含在样本函数调用中不同于使用Circle b.

解决方法

是.如果您使用&,则以圆圈为参考.如果不使用它,则传递一个圆形对象的副本,由编译器为您创建的副本.这将触发类复制构造函数(您定义的构造函数或默认的构造函数,它是按位复制).

有了参考,你不会复制对象.而是获取您在呼叫者中的对象.它相当于对原始对象有一个别名,并且您执行的任何更改将应用??于传递的对象.在复制的情况下,对象的任何更改在调用结束时丢失,因为该副本被销毁.

当您使用引用时,该参数的内部使用需要您使用.访问该对象的成员(例如b.getRadius()).如果你定义你的函数接受一个指针(func(Circle * bPtr)),那么你必须使用 – > (例如bPtr-> getRadius()).使用指针不同于使用引用,但最终的实际效果是相同的:您可以操纵原始对象而不是副本.

请注意,这在函数定义中有效.安&在另一个上下文中使用,可以让您指向某个东西所在的指针.他们不一样,虽然他们使用相同的符号.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读