gpt4 book ai didi

C++:输入和输出流运算符:关联性

转载 作者:太空狗 更新时间:2023-10-29 21:04:20 26 4
gpt4 key购买 nike

理论上的输入/输出流运算符关联性:

从左到右

(例如,根据这个:Sait Mary's University website

输入/输出流运算符关联性实践:

#include <iostream>

int func0() {
std::cout << "func0 executed" << std::endl;
return 0;
}

int func1() {
std::cout << "func1 executed" << std::endl;
return 1;
}

int func2() {
std::cout << "func2 executed" << std::endl;
return 2;
}

int main() {
std::cout << func0() << func1() << func2() << std::endl;
return 0;
}

输出(MSVCPP 2010、2012):

func2 executed
func1 executed
func0 executed
012
Press any key to continue . . .

此示例演示函数是按从右到左的顺序调用的(尽管它们的值按预期从左到右打印)。

问题:此代码示例如何与有关从左到右执行的标准词相关联?为什么函数执行以从右到左的顺序执行?

最佳答案

关联性定义了运算符<<调用的顺序,调用顺序如下:((((std::cout << func0()) << func1()) << func2()) << std::endl); .然而,iirc,评估 operator<< 的参数的顺序是实现定义的,这就是您在此处测试的内容。

关于C++:输入和输出流运算符:关联性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11354871/

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