为了账号安全,请及时绑定邮箱和手机立即绑定

::的类名前有个 & ,什么意思?

MazePerson &MazePerson::setPersonPosition(int coordinateX,int coordinateY)
{
 positionX = coordinateX;
 positionY = coordinateY;
 return *this;
}


正在回答

2 回答

&是饮用 哦不 引用符号 表示函数返回一个MazePerson的引用

可以这么理解 MazePerson &/*从这往前表示函数返回类型*/ MazePerson:: /*类外定义函数*/ setPersonPosition /*函数名*/ ()

返回This指针指向的自己对象的就是个引用

0 回复 有任何疑惑可以回复我~

这个& 其实你可以和前面结合起来看

说明返回值是一个 MazePerson& 即 MazePerson类型的引用

0 回复 有任何疑惑可以回复我~
#1

qq_saligbosncba_0 提问者

如果去掉 这个&会有什么影响吗 ?
2015-08-23 回复 有任何疑惑可以回复我~
#2

onemoo 回复 qq_saligbosncba_0 提问者

返回值为引用时,这个返回对象就被视为类对象本身,你可以通过它来操作这个类对象。 如果去掉引用的话,在使用返回值的地方会构造一个返回值的临时对象,并且这个对象与this除了值相同外没有任何联系。
2015-08-23 回复 有任何疑惑可以回复我~
#3

AAnonymous 回复 qq_saligbosncba_0 提问者

有区别。返回引用就是返回的对象本身,不返回引用返回的是对象的一个拷贝。 返回引用你可以用一个引用去接收,对引用对象的操作也就是对原始对象的操作(本质上是同一个对象) 不返回引用不可以用引用去接收,这时就是两个不同的对象只是值相同而已
2015-08-23 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之封装篇(下)
  • 参与学习       70919    人
  • 解答问题       514    个

封装--面向对象三大特征之一,通过案例让C++所学知识融会贯通

进入课程

::的类名前有个 & ,什么意思?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信