根据this question的最佳答案, cout << expr
相当于cout.operator<<(expr)
.
根据对 this question 的回复,以上说法不正确。
根据我自己的测试,cout.operator<<()
与cout <<
相同当给定一个整数时。当给出一个 float 时,cout.operator<<()
将其强制为整数。当给定字符串文字时,如 cout.operator<<("hello world")
,它输出的似乎是一个内存地址。当给定一个包含 std::string 的变量时,它会给出编译器错误。
谁能给出初级到中级水平的解释是怎么回事?
最佳答案
这取决于expr
.
这两个问题的答案都是针对特定案例的,而不是一揽子保证。
事实上,一些operator<<
是 free functions , 有些是 member functions .
查阅您最喜欢的 C++ 引用资料以找出是哪一个。
关于c++ - 了解 cout.operator<<() 的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44414863/