【发布时间】:2012-04-29 14:18:11
【问题描述】:
在 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 类型的函数,因为它有一个相同类型的构造函数!我不希望这种情况发生,我能做些什么来防止这种情况发生?
【问题讨论】:
标签: c++ visual-studio-2008 visual-c++