一、返回非引用类型
- 如果返回类型不是引用,返回的是值,在调用函数时会将返回的值赋给临时对象
- 当函数返回非引用类型时,其返回值既可以是局部对象也可以是求解表达式的结果
二、返回引用类型
- 返回引用类型时,没有复制返回值,而是返回对象本身
- 不能返回局部对象的引用,不能返回指向局部对象的指针
- 返回引用时,要求在参数中包含有以引用方式或指针方式存在的,需要被返回的参数
const integer& operator+(const operator& a)
{
return a;
}
const integer operator1(const operator& a)
{
return integer(-a.i);
}
重载+时,返回的对象是参数a,所以可以返回引用,而重载-时,在函数体内创建了一个局部对象,返回值不能返回局部对象的引用。