gpt4 book ai didi

c++ - 为什么输出运算符是 'os << value' 而不是 'value >> os' ?

转载 作者:太空狗 更新时间:2023-10-29 20:06:37 24 4
gpt4 key购买 nike

我正在学习流媒体。标准流提供 <<运算符可以声明为:

ostream& operator<<(stream& os, CLASS& rc);  

为什么不能这样声明呢?

ostream& operator>>(CLASS& rc, stream& os); 

然后我可以做类似的事情:

rc.something >> os;

作为其实现的一部分。


编辑因为人们帮助我了解了更多这方面的知识,我很感激。

但是我对如何实际实现它感到困惑。

我试过了

ostream& operator >> (const SomeClass& refToCls, stream& os)
{
refToCls.iVar >> os;
return os;
}

但是失败了。我该如何解决?

最佳答案

其实可以定义

ostream& operator>>(CLASS& rc, ostream& os);

但是你必须像这样链接它:

a >> (b >> (c >> str));

>>> 运算符是左关联的,因此默认情况下:

a >> b >> c >> str;

相当于:

((a >> b) >> c) >> str;

意思不对。

关于c++ - 为什么输出运算符是 'os << value' 而不是 'value >> os' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7052568/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com