C++的语法,如果没有显式定义类型的构造函数,编译器会自动替你定义一个,那个构造函数就是Time(),在源代码中不写,并不等于没有这个东西。C++有函数重载机制,相同的函数名,形参不同,就是不同的函数,所以你现在显式重载了一个若干个形参的构造函数,但并不影响编译器仍然替你补充出一个没形参的默认函数,这个类型现在有两个构造函数。你声明的数组是50个对象,必然启动了50次构造函数,但它们并不使用相同的构造函数,你前面明确写了使用有形参的构造函数的对象有4个,则后面46个对象就自动使用了没有形参的默认构造函数Time(),而这个函数你没有用代码覆盖默认的空函数。
你重载覆盖掉编译器的默认构造函数,显式写出Time(),并在其中写上不同的输出语句,就会看到那些东西都浮现出来了。
你重载覆盖掉编译器的默认构造函数,显式写出Time(),并在其中写上不同的输出语句,就会看到那些东西都浮现出来了。
授人以渔,不授人以鱼。