按相反顺序进行cout打印

cout printing in reverse order

本文关键字:cout 打印 顺序      更新时间:2023-10-16

在以下示例中尝试重载运算符():

#include <iostream>
using namespace std;
class Fib {
  public:
    Fib() : a0_(1), a1_(1) {}
    int operator()();
  private:
    int a0_, a1_;
};
int Fib::operator()() {
    int temp = a0_;
    a0_ = a1_;
    a1_ = temp + a0_;
    return temp;
}
int main() {
    Fib fib;
    cout << fib() <<"," << fib() << "," << fib() << "," << fib() << "," << fib() << "," << fib() << endl;
}

它以与8,5,3,2,1,1相反的顺序打印fib序列。我知道各州都是以()重叠的方式显示的,但为什么印刷品以相反的顺序显示?

运算符<lt;是为其参数定义的某个函数。函数参数的求值顺序未指定。它们可以从右到左或从左到右进行评估。编译器似乎从右到左对它们求值。