说i = (++i) * (i++);的那个,在两个顺序点之间改变一个变量的值一次一样属于UB行为,i最后等于几都符合标准。
“Modifying an object between two sequence points more than once produces undefined behavior.”
“Modifying an object between two sequence points more than once produces undefined behavior.”
2017-02-10
这里对于输出运算符重载讲得一般,当时课程上学习的时候,这里返回值为out是有原因的。
cout<<coor1<<coor2<<endl;
上面这个例子中,第一次重载<<的时候cout作为第一个参数,coor作为第二个参数,返回出来out的引用,这个out引用的是"cout<<coor1",第二次重载的时候是将这个cout<<coor1整个作为out流对象,做成第一个参数。
cout<<coor1<<coor2<<endl;
上面这个例子中,第一次重载<<的时候cout作为第一个参数,coor作为第二个参数,返回出来out的引用,这个out引用的是"cout<<coor1",第二次重载的时候是将这个cout<<coor1整个作为out流对象,做成第一个参数。
2017-01-22
非常感谢James老师的精彩讲解,自己看书很多不懂的地方经过老师的点拨有了很大的理解,教会了如何开船,以后的路还要自己走,感觉相见恨晚啊,很不错的资源,再次谢谢老师的讲解。