这是简单的代码:
int main()
{
int x=0;
std::cout<<x;
operator<<(std::cout,x); //ambiguous
return 0;
}
为什么是operator<<(std::cout,x)
模棱两可却又不叫std::cout<<x;
?谢谢
最佳答案
这里的问题是,对于输出整数, operator<<
is an std::ostream
member function .
因此,要显式调用运算符函数,您应该这样做,例如
std::cout.operator<<(x);
stand-alone operator<<
function用于字符和字符串。
关于c++ - 为什么对 operator<< 的显式调用不明确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32810394/