gpt4 book ai didi

c++ - 这个右移是如何工作的 : stringstream >> unsigned int >> unsigned int?

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

我正在阅读 SFML Game Development by Examples 这本书,但我不太明白这句话的作用。我从来没有见过这样的东西

void Anim_Directional::ReadIn(std::stringstream& l_stream){
l_stream >> m_frameStart >> m_frameEnd >> m_frameRow
>> m_frameTime >> m_frameActionStart >> m_frameActionEnd;
}

最佳答案

在 C++ 中,他们有了一个“聪明”的想法,即用流重载右移和左移运算符以表示序列化/反序列化。

stream >> var

表示“从流中读取变量”。

对称地

stream << var

意思是“将变量放入流中”

“流”进或出的操作也会返回流,因此您可以像这样链接操作:

stream >> var1 >> var2;

请注意,选择“流”只是因为外观和优先级被认为是合理的,但它仍然只是一个重载运算符,并且意味着例如没有严格的评估顺序。例如:

stream << f() << g();

可能是函数g在函数 f 之前被调用(有点令人惊讶) .

注意:排序问题是通过在最新的 C++ 标准 (C++17) 中解决这个特殊情况来解决的。虽然它一般不成立,但可以保证轮类运算符(operator)(可能是出于这个特定原因)。所以在 f()+g()可能是 f调用晚于 g , 但在 f()<<g()这不可能发生。

关于c++ - 这个右移是如何工作的 : stringstream >> unsigned int >> unsigned int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55207191/

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