以下是简单的代码:
int main()
{
int x=0;
std::cout<<x;
operator<<(std::cout,x); //ambiguous
return 0;
}
为什么operator<<(std::cout,x)
调用不明确但不std::cout<<x;
?感谢
答案 0 :(得分:6)
这里的问题是输出整数operator<<
is an std::ostream
member function。
因此,要明确调用运算符函数,例如
std::cout.operator<<(x);
stand-alone operator<<
function用于字符和字符串。