使用const引用的常见原因旨在提高效率,但对于何时可以采用这种方式存在一些限制。如果函数返回传递给他的对象,可以通过返回引用来提高效率。例如Max()函数:
Vector num1;
Vector num2;
Vector max = Max(num1, num2);
const Vector& Max(const Vector& v1, const Vector& v2)
{
if(v1 > v2)
return v1;
else
return v2;
}
三点说明:
(1)返回对象将调用复制构造函数,而返回引用不会。因此,返回引用所做的工作更少,效率更高;
(2)引用指向的对象应该在调用函数执行时存在;
(3)v1和v2都被声明为const引用,因此返回类型必须为const,这样才匹配。