作业帮 > 综合 > 作业

friend A& operator++(A& a)//前++ { a.data += 10; return a; }

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/06/04 11:51:05
friend A& operator++(A& a)//前++ { a.data += 10; return a; }
我想问的是,前面的friend A& 这个引用有什么意义吗?加和不加有什么区别吗?
friend A& operator++(A& a)//前++ { a.data += 10; return a; }
因为参数是引用,修改会作用于原对象,所以这里是否返回引用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则是再复制一个对象返回。