为什么显式调用operator<<暧昧?

时间:2015-09-27 16:52:01

标签: c++ iostream

以下是简单的代码:

int main()
{
    int x=0;
    std::cout<<x; 
    operator<<(std::cout,x); //ambiguous

    return 0;
}

为什么operator<<(std::cout,x)调用不明确但不std::cout<<x;?感谢

1 个答案:

答案 0 :(得分:6)

这里的问题是输出整数operator<< is an std::ostream member function

因此,要明确调用运算符函数,例如

std::cout.operator<<(x);

stand-alone operator<< function用于字符和字符串。