为什么这行之有效:
cout << "foo";
虽然这不是?
(&cout)->operator<<("foo");
它可以很好地处理数值,所以我猜它与覆盖有关。 (我使用的是 MS Visual C++ 编译器。)
最佳答案
operator<<
仅作为有限数量类型的成员函数实现。对于其他类型,它作为全局重载实现,例如:
std::ostream &operator<<(std::ostream &os, T const &t) {
// write the data here
}
您使用的语法仅适用于作为成员函数而不是全局变量实现的重载。
关于c++ - ostream 引用运算符 <<,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10048208/