第四章,效率21-利用重载技术避免隐式类型转换注意重载操作符函数可能隐式转换产生临时对象class UPInt{public: UPInt(); UPInt(int value); ...};const UPInt operator+(const UPInt& lhs, const UPInt& rhs);UPInt upi1, upi2;...UPInt upi3 = upi1 + upi2;//正常调用operator+,没有额外成本UPInt upi3 = upi1 + 10; //会产生临时对象,付出构造析构成本,将10转型为UPIntUPInt upi3 = 10 + upi1; //会产生临时对象,付出构造析构成本,将10转型为UPInt//为避免产生临时对象,重载函数,提供对应的参数列表const UPInt operator+(const UPInt& lhs, int rhs);const UPInt operator+(int lhs, const UPInt& rhs);//注意:每个重载操作符函数参数必须包含至少一个定制类型,不能全是C++内置类型,例如operator+(int,int)是错误的(参数列表不能全是C++内置类型)const UPInt operator+(int lhs, int rhs);//错误!!!