这是跟进my previous question。C++中的类型强制跟进,因为它可能会被解释为类型转换
想想看,我写一个函数的原型如下:
int a_function(Foo val);
其中foo被认为是定义unsigned int的一个类型。遗憾的是,由于缺少文件,这是不可验证的。
所以,有人出现并使用a_function,但用unsigned int作为参数进行调用。
这里的故事轮到了。 Foo实际上是一个类,它可以在显式构造函数中将unsigned int作为unsigned int的单个参数。
它是编译器通过对参数进行类型转换来呈现函数调用的标准可靠行为。即编译器是否应该识别不匹配并插入构造函数?或者我应该得到一个编译时错误报告类型不匹配。