Open EnzoFerrari430 opened 5 years ago
ld = si + ld; 我看很多人都说只能转换成内置类型进行相加operator+(int,float)或者operator+(int,double) 为什么下面这种不行呢 friend SmallInt operator+(const SmallInt &,const SmallInt &); ld可以先转换成float或者double然后再转换成int。SmallInt可以调用SmallInt(int = 0);构造一个临时对象 然后得到SmallInt再转换成int类型,再转换成double最后调用LongDouble(double = 0.0);构造一个临时对象。这种方式不行吗?虽然也会产生二义性。
operator+(int,float)
operator+(int,double)
friend SmallInt operator+(const SmallInt &,const SmallInt &);
SmallInt(int = 0);
LongDouble(double = 0.0);
ld = si + ld; 我看很多人都说只能转换成内置类型进行相加
operator+(int,float)
或者operator+(int,double)
为什么下面这种不行呢friend SmallInt operator+(const SmallInt &,const SmallInt &);
ld可以先转换成float或者double然后再转换成int。SmallInt可以调用SmallInt(int = 0);
构造一个临时对象 然后得到SmallInt再转换成int类型,再转换成double最后调用LongDouble(double = 0.0);
构造一个临时对象。这种方式不行吗?虽然也会产生二义性。