课程
/后端开发
/C++
/C++远征之起航篇
请问为什么cout<<x,y,z<<endl;是错的
2015-05-10
源自:C++远征之起航篇 4-3
正在回答
<<是向左移位运算符,在接在输出流后的情况下被默认重载定义了输出功能,后接一个基本数据类型或字符、字符串常量。在"cout<<x,y,z<<endl;"中"cout<<x"输出x并返回一个标准输出流对象,也就相当于输出x先后再进行"cout<<,y,z<<endl;"那么下一步是"cout<<,"这是一个未定义的行为,也就是说系统没有定义这种写法。和用“+”去加两个未重载运算符的函数,用“*”去乘你自己定义的两个复数这类行为是一样的。语言本身没有这种规定,编程者用没有指明这样写的意义,计算机自然无法识别。
这个就像英语语法,规定的你那样写是错误的.这样写cout<<x<<y<<z<<endl;是正确语法,是对的
应该写成:“cout<<x<<y<<z<<endl;”
你学了重载就知道了~
没有规矩,不成方圆!规矩。
你能告诉我为什么要学英语么..
这个你可以问问发明C++的那个人。。。。C++中就那么规定的,这有啥好纠结的。。。
举报
C++亮点尽在其中,本课程是在C语言基础上的一个延伸,得以升华