在 C++ 中发现这个特性让我有点惊讶,我没想到它会发生。
这是代码:
struct XY {
int x,y;
XY(int v) : x(v), y(v) {}
};
bool test1(const XY &pos){
return pos.x < pos.y;
}
bool test1(int x, int y){
return x < y;
}
void functest(){
int val = 5;
test1(val);
}
所以我可以调用一个带有整数参数的函数,无论是否存在这种重载,它都会使用 XY 类型的函数,因为它有一个相同类型的构造函数!我不希望这种情况发生,我能做些什么来防止这种情况发生?