返回对象的有关说明
1.返回指向const对象的引用
//*如函数返回传递给它的对象,可以通过传递引用提高效率
ep:
const Vector & Max(const Vector & v1,const Vector & v2)
{
if (v1.magval()>v2.magval())
return v1;
else
return v2;
}
2.返回指向非const对象的引用
//*重载赋值操作符 重载 <<操作符时
//*以便连续赋值
ep:
String s1("good day");
String s2,s3;
s3=s2=s1;
3.返回对象
如返回对象是被调用函数的局部变量,因执行完后,局部变量将被删除。所以其引用量将被删除。
ep:
Vector for1(50,60);
Vector for2(100,60);
Vector net;
net=for1+for2;
对象和将会放倒一个新的临时对象中,所以不能返回一个临时量的引用
Vector Vector::operator + (const Vector & b) const
{
return Vector(x+b.x,y+b.y);
}
4.返回const对象
ep:
<A> for1+for2=net
类似无意义代码(对象和放临时对象,临时对象被重新赋值,让后被丢弃)。被申明为:
const Vector operator + (const Vector & b) const;
出现<A>编译器将会报错予以提示


浙公网安备 33010602011771号