friend A& operator++(A& a)//前++ { a.data += 10; return a; }
我想问的是,前面的friend A& 这个引用有什么意义吗?加和不加有什么区别吗?
friend A& operator++(A& a)//前++ { a.data += 10; return a; }
答案:1 悬赏:0 手机版
解决时间 2021-05-19 07:12
- 提问者网友:咪咪
- 2021-05-18 23:09
最佳答案
- 五星知识达人网友:野慌
- 2021-05-19 00:16
因为参数是引用,修改会作用于原对象,所以这里是否返回引用A&是一样的,
friend A& operator++(A& a)和friend void operator++(A& a)效果一样.
friend是修饰自加重载符的,不是修饰A&的,如果A的成员data声明为private的话,这里friend是必须的.
再问: 确实那个data是类里的私有成员,所以使用friend。 我可能意思没有表达清楚。 这里friend A& operator++(..) A&我认为是返回类型,是返回一个引用类型,是这个意思吗?。如果换成A 这样会有什么区别吗? 如果没有什么区别的话, 为什么前面的A还要加上&呢? 写成A不是更直接吗? 我所说的A& 都是指的前面的这个A&。
再答: 返回A&是将原对象返回,返回A则是再复制一个对象返回。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯