最新回答 / qq_啊你竟然丶_0
楼上的代码有误啊,Watch(Time newt):t(newt){}//这句是Watch的构造函数不假,但是给t赋值的时候用的其实是Time拷贝构造函数,而Time并没有定义拷贝构造函数,所以不能这么写。解决办法:1,定义一个Time的拷贝构造函数 例:Time(Time &_time):hour(_time.hour),minute(_time.minute),second(_time.second){} 2,把watch的...
2017-02-14
说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
最新回答 / juhhjj
参数顺序是有影响的,第一个参数一般为符号前面的参数,第二个参数为符号后面的参数。符号前面没有参数,第一个就编程符号后面的参数了。符号后面没有参数时,需要用int,系统会判断符号后面的参数有没有,没有就给传个0。你可以试验下‘-’号的运算符试试
2017-02-02
这里对于输出运算符重载讲得一般,当时课程上学习的时候,这里返回值为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老师的精彩讲解,自己看书很多不懂的地方经过老师的点拨有了很大的理解,教会了如何开船,以后的路还要自己走,感觉相见恨晚啊,很不错的资源,再次谢谢老师的讲解。