c++ - ostream 引用运算符 <<

标签 c++ operators cout

为什么这行之有效:

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/

相关文章:

C++ vector 和结构体问题 win32

c++ - 在高性能金融应用程序中缓存

C++ NetBEAN cout 错误?

c++ - Cout 不打印指向内存的内容

c++ - 当我想根据两个键排序时如何获得 O(log n)?

c++ - 错误 LINK2005 已在 Main.obj 中定义

Python 等效于 Perl 文件测试可读 (-r)、可写 (-w) 和可执行 (-x) 运算符

haskell - $ 在 Haskell 中意味着什么/做什么?

r - %op% 运算符是什么意思?例如 "%in%"?

通过从其他已初始化的字符串中复制索引字符形成的 C++ 字符串。无法使用 cout 打印新形成的字符串