C++友元函数重载“+=”怎么写啊麻烦哪位大神帮帮忙呗,只用写作为友元函数的重载函数

 我来答
大话修身
2017-06-10 · TA获得超过2533个赞
知道小有建树答主
回答量:252
采纳率:0%
帮助的人:189万
展开全部
首先在你的类中要有一个声明:
friend yourclasstype& operator+=(const yourclass& lhs, const yourclasstype& rhs);
这里yourclasstype就是你类的名字。函数第一个参数就是类对象自身,函数第二个参数其实可以不止是你的类对象,还可以是其他任何类型。比如你写一个整型,那么这个类就可以使用+=来支持一个整型的操作。

然后,在类外部是去实现这个函数。
这其实和C++的cout是一个道理,你想为什么cout << 后面能支持一个string类型。因为他有一个friend的接受string作为第二个参数的重载函数。
百度网友fabc8e02e
2018-09-29
知道答主
回答量:1
采纳率:0%
帮助的人:828
展开全部
friend yourclasstype& operator+=(const yourclass& lhs, const yourclasstype& rhs)
第一个参数为const还能成功重载+=吗?
class Time{
private:
    int min;
public:
    Time(int a) : min(a) {}
    friend Time& operator+=(Time &left, const Time &right);
};
Time& operator+=(Time &left, const Time &right)
{
    left.min += right.min
    return left;
}
赋值操作符尽量用成员函数重载(=必须用成员函数),双目操作符尽量用友元函数重载(
<<必须用友元函数)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式