| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1618 人关注过本帖
标题:一个有意思的问题
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
C++的语法,如果没有显式定义类型的构造函数,编译器会自动替你定义一个,那个构造函数就是Time(),在源代码中不写,并不等于没有这个东西。C++有函数重载机制,相同的函数名,形参不同,就是不同的函数,所以你现在显式重载了一个若干个形参的构造函数,但并不影响编译器仍然替你补充出一个没形参的默认函数,这个类型现在有两个构造函数。你声明的数组是50个对象,必然启动了50次构造函数,但它们并不使用相同的构造函数,你前面明确写了使用有形参的构造函数的对象有4个,则后面46个对象就自动使用了没有形参的默认构造函数Time(),而这个函数你没有用代码覆盖默认的空函数。

你重载覆盖掉编译器的默认构造函数,显式写出Time(),并在其中写上不同的输出语句,就会看到那些东西都浮现出来了。

授人以渔,不授人以鱼。
2013-03-09 20:33
信箱有效
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:9
帖 子:1102
专家分:4268
注 册:2012-6-19
收藏
得分:0 
我昨天才学的C++都知道这个问题根本就一点意思都没有。
2013-03-09 20:34
wsws23
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:105
专家分:107
注 册:2012-3-13
收藏
得分:0 
果然是 谢谢楼主
还是 有高手啊
2013-03-09 20:35
wsws23
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:105
专家分:107
注 册:2012-3-13
收藏
得分:0 
回复 23楼 信箱有效
我表示
2013-03-09 20:36
快速回复:一个有意思的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016301 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved