【发布时间】:2017-11-08 22:30:09
【问题描述】:
根据this question 的最高答案,cout << expr 等价于cout.operator<<(expr)。
根据this question的回复,以上说法不实。
根据我自己的测试,cout.operator<<() 与cout << 在给定整数时是一样的。当给定一个浮点数时,cout.operator<<() 将其强制为一个整数。当给定一个字符串文字时,如cout.operator<<("hello world"),它会输出似乎是内存地址的内容。当给定一个包含 std::string 的变量时,它会给出编译器错误。
任何人都可以对发生的事情进行初级到中级的解释吗?
【问题讨论】:
-
"
cout << expr等同于cout.operator<<(expr)" 并非普遍正确。第二个问题+第一个评论的答案解释了这一点。不确定这是否算作重复......也许这会有所帮助:stackoverflow.com/questions/36809463/…
标签: c++ operator-overloading iostream cout