为了账号安全,请及时绑定邮箱和手机立即绑定

已采纳回答 / 慕粉0711359087
放在哪都可以,直接把静态成员当作一个全局变量就行了

已采纳回答 / qq_慕斯5217645
这是为了避免重定义。在第一次访问Time.h文件时,由于未定义Time.h,ifndef TIME_H为真,程序会执行#define 和#endif之间的内容;当由多个程序导入头文件,Time.h被不止一次调用时,若第二次访问Time.h,由于已经定义过Time.h,ifndef为假,其下程序不执行,就避免了重复定义。

已采纳回答 / Hsze
因为Time类没有默认构造函数 初始化列表先于构造函数执行 所以这里只有用初始化列表  如果你要用赋值运算符的话 只有在Time类中设置默认构造函数

已采纳回答 / qq_慕神3597178
交换了,x,y传入swap函数的是他们的引用,通过交换引用的值,间接交换x、y的值

已采纳回答 / 望回
没有引用符号就是值传递,值传递函数返回值时会产生一个临时变量作为函数返回值的副本,得到一个右值,右值是不能继续赋值的。

最新回答 / 知心好友
在Match.h中不能包含Time.h,只能用class Time预声明有这个类,我就是去掉time的头文件,和老师一样就行了

已采纳回答 / 木凡辰
其实准确的来说,Coordinate &是在一起的,表明返回值类型。operator -是在一起的,表明函数名是一个运算符减号。Coordinate::是在一起的,表明是哪个作用域下。而函数在书写时,首先表明返回值类型,所以最开始应该是Coordina&,然后是函数名,但是这个函数是在其他作用域下,所以先声明作用域Coordinate::,最后写函数名operator-。所以最后写出来就是Coordinate& Coordinate::operator- ()。

已采纳回答 / 慕妹615124
如果返回的时 *this,可以实现连“连”的效果,对于+的话,可以 object1 + object2 + object3,如果返回的void的话,只能object1 + object2

最赞回答 / JakyZhan
Watch(Time t):m_tTimer(t.m_iHour,t.m_iMinute,t.m_iSecond);//m_tTime

已采纳回答 / 慕哥3558660
你这个把两个后置++放在一条cout语句中输出,按照C++标准会产生一个未定义的行为。编译器在处理输出流的过程是按照自右向左的顺序对各输出项进行求值的。所以先进行((*coor)++).getY()的求值得到3,再进行((*coor)++).getX()的求值得到2,最后按顺序输出2,3。要想得到1,4最好将其分成两条cout语句来写。这就和int a = 1; cout << a++ << a++ << endl;得到的结果是2,1的道理是一样的。

已采纳回答 / ernest2017
构造函数不能有返回值

已采纳回答 / zyczxl
因为所有的函数都有自带的(隐藏的)this指针。你如果有自定义括号内的变量你就返回它,比如old。如果没有,你就得返回一个this指针。就像你c++写main函数的时候,如果你是int main(),你没有在最后写return 0,系统会报错的。

已采纳回答 / 慕村9099274
打印是按索引(key)的顺序打印的,如“A”,先于“B”打印。
首页上一页123456下一页尾页
课程须知
学习本课程需要有一定的C语言和C++语言基础。如基础不太扎实的同学可以,参与C++远征攻略的学习计划,友情链接 http://www.imooc.com/course/programdetail/pid/42
老师告诉你能学到什么?
1、友元函数及友元类的定义及使用方法 2、静态数据成员和静态成员函数的定义及使用方法 3、运算符重载的技巧 4、函数模板和类模板的定义及使用方法 5、标准模板库的使用方法及基本原理

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消