if里i=0之后,for的i++运算导致少了一个,把i++放到if后面,sum=0后面加一个continue
当我们调用重载函数时,如果两个或多个用户定义的类型转换都提供了同一种可行匹配,则这些类型转换一样好。即使在这个过程中出现了标准类型转换的级别。
例如我们有类 E:
struct E{
E(double);
// 其他成员
};
void manip(const C&);
void manip(const E&);
manip2(10); // 二义性错误,指 manip2(C(10)) 还是 manip(E(double(10)))
上述 manip2 的调用仍发生二义性错误。即使其中一个调用需要额外的标准类型转换而另一个调用能精确匹配。