未定义标识符“运算符+ =“

时间:2019-04-21 11:11:53

标签: c++ operator-overloading

我想在委托的帮助下实现运算符“ +”。但是当我想使用“ + =”运算符时,找不到它。

const Navigator = createDrawerNavigator( { Home, }, 
{ // drawerType: 'back',
 // drawerPosition: 'right', 
// drawerWidth: 200, // drawerBackgroundColor: 'orange',
 // contentComponent: CustomDrawerContentComponent } );

 export default createAppContainer(Navigator) ; 

1 个答案:

答案 0 :(得分:3)

您的第二个功能(operator+)是独立的,它不是成员。您的第一个函数(Money::operator+= 是成员函数;您不能像使用独立成员一样使用+ =成员函数。

因此,在第二个功能中,您可能想要做类似的事情:

Money operator+ (const Money &first, const Money &second) noexcept
{
    Money sum{first}; 
    sum += second; 
    return sum; 
}

话虽如此-您还应该遵循@πάνταῥεῖ的建议并阅读:

What are the basic rules and idioms for operator overloading?