使用&C

前端之家收集整理的这篇文章主要介绍了使用&C前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想知道如何使用&访问某个内存位置改变了一个函数调用的性质.例如,如果我已经写了一个函数来设置圆的半径
//True,if success,False if radius is off-screen
bool SetRadiusCircle(Circle &b,int r)

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

解决方法

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

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

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

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

原文链接:https://www.f2er.com/c/114328.html

猜你在找的C&C++相关文章