操作符的中缀调用,函数查找过程是怎么样的啊.为什么这样的代码出错呢?
书上看到说,中缀操作符中的左边参数的类的作用域与全局作用域都被考虑到重载解析范围内.
class X
{
public:
void operator %(float rx) //2
{
cout<<"X:%"<<endl;
}
};
void operator %(const X &lx, int rx) //1
{
cout<<"std:%"<<endl;
}
int main(char**, char**)
{
X x;
x % 2; //为什么这里不懂去调用函数1呢?操作符的中缀调用,函数查找过程是怎么样的啊.是先查找类X中的operator %函数呢.还是先寻找最佳可匹配函数啊?
system("pause");
return 0;
}