Time t(a);是什么意思啊,它涉及的是C++的什么知识
答案:1 悬赏:30 手机版
解决时间 2021-03-08 14:03
- 提问者网友:一抹荒凉废墟
- 2021-03-07 22:36
Time t(a);是什么意思啊,它涉及的是C++的什么知识
最佳答案
- 五星知识达人网友:刀戟声无边
- 2021-03-07 23:39
一般的类,如果你没有写拷贝构造函数,编译器都会帮你写一个的(当然这个在代码中不会出现,你是看不到的),当然,如果你自己写了,编译器就不会帮你写了。
你这种情形就是你自己没有写拷贝构造函数,编译器帮你写的
它写的大致声明如下:
Time(const Time& other);
拷贝构造函数的作用就是一模一样的拷贝一份其他的对象。
Time t(a);
这句话的意思是将a对象拷贝一份,放在t中。
这句话调用了拷贝构造函数。
这句话等价于Time t = a;追问那程序最后两行的cout<
++t调用的是:
Time& operator++(Time& a);
t++调用的是:
Time operator++(Time& a, int);
++t和t++
与下面是相似的:
int i=0;
++i;
i++;
只不过一个作用于类类型,一个作用于内置类型追问++i 和i++这个我明白,但是Time& operator++(Time& a)和Time operator++(Time& a, int);它们的函数体不是一样的,你可以演示一下,它是怎么算出结果 11:59:58和12:00:00的追答最开始的时间是:
time 11:59:58
然后:
time++ 的结果是11:59:58(先返回计算结果,然后在time自增),也就是输出结果,这样以后time变成了11:59:59
最后:
++time的结果是11:59:60即12:00:00(先time自增,然后返回计算结果)
你这种情形就是你自己没有写拷贝构造函数,编译器帮你写的
它写的大致声明如下:
Time(const Time& other);
拷贝构造函数的作用就是一模一样的拷贝一份其他的对象。
Time t(a);
这句话的意思是将a对象拷贝一份,放在t中。
这句话调用了拷贝构造函数。
这句话等价于Time t = a;追问那程序最后两行的cout<
++t调用的是:
Time& operator++(Time& a);
t++调用的是:
Time operator++(Time& a, int);
++t和t++
与下面是相似的:
int i=0;
++i;
i++;
只不过一个作用于类类型,一个作用于内置类型追问++i 和i++这个我明白,但是Time& operator++(Time& a)和Time operator++(Time& a, int);它们的函数体不是一样的,你可以演示一下,它是怎么算出结果 11:59:58和12:00:00的追答最开始的时间是:
time 11:59:58
然后:
time++ 的结果是11:59:58(先返回计算结果,然后在time自增),也就是输出结果,这样以后time变成了11:59:59
最后:
++time的结果是11:59:60即12:00:00(先time自增,然后返回计算结果)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯