已采纳回答 / qq_慕斯5217645
这是为了避免重定义。在第一次访问Time.h文件时,由于未定义Time.h,ifndef TIME_H为真,程序会执行#define 和#endif之间的内容;当由多个程序导入头文件,Time.h被不止一次调用时,若第二次访问Time.h,由于已经定义过Time.h,ifndef为假,其下程序不执行,就避免了重复定义。
2020-03-30
已采纳回答 / 木凡辰
其实准确的来说,Coordinate &是在一起的,表明返回值类型。operator -是在一起的,表明函数名是一个运算符减号。Coordinate::是在一起的,表明是哪个作用域下。而函数在书写时,首先表明返回值类型,所以最开始应该是Coordina&,然后是函数名,但是这个函数是在其他作用域下,所以先声明作用域Coordinate::,最后写函数名operator-。所以最后写出来就是Coordinate& Coordinate::operator- ()。
2019-03-31
已采纳回答 / 慕妹615124
如果返回的时 *this,可以实现连“连”的效果,对于+的话,可以 object1 + object2 + object3,如果返回的void的话,只能object1 + object2
2019-03-14
已采纳回答 / 慕哥3558660
你这个把两个后置++放在一条cout语句中输出,按照C++标准会产生一个未定义的行为。编译器在处理输出流的过程是按照自右向左的顺序对各输出项进行求值的。所以先进行((*coor)++).getY()的求值得到3,再进行((*coor)++).getX()的求值得到2,最后按顺序输出2,3。要想得到1,4最好将其分成两条cout语句来写。这就和int a = 1; cout << a++ << a++ << endl;得到的结果是2,1的道理是一样的。
2018-10-08
已采纳回答 / zyczxl
因为所有的函数都有自带的(隐藏的)this指针。你如果有自定义括号内的变量你就返回它,比如old。如果没有,你就得返回一个this指针。就像你c++写main函数的时候,如果你是int main(),你没有在最后写return 0,系统会报错的。
2018-08-15