请教+的重载
这是primer中的随书源代码class Sales_item{
....
}
Sales_item operator+(const Sales_item&, const Sales_item&);
inline
Sales_item
operator+(const Sales_item& lhs, const Sales_item& rhs)
{
Sales_item ret(lhs); // copy lhs into a local object that we'll return
ret += rhs; // add in the contents of rhs
return ret; // return ret by value
}
以上均在类的定义体内
如果我把
inline
Sales_item
operator+(const Sales_item& lhs, const Sales_item& rhs)
{
Sales_item ret(lhs); // copy lhs into a local object that we'll return
ret += rhs; // add in the contents of rhs
return ret; // return ret by value
}
放在实现文件中,就会提示错误
书上说+可以通过重载的+=来实现,因而不需要访问成员变量,不必将重载+函数设为友元,那么是不是重载+的声明只能是在类的定义体后呢(像他那样还是在头文件中声明),可以在类的定义体中声明吗?为什么我把重载+的函数放在实现文件中就出错呢,请教一下大家。