我本来还清楚的,把书一看就什么都不清楚了。麻烦能否举几个简单的例子说明一下呢?
我懂了。只剩下默认构造函数这里不清楚。我得出的结论是:
默认构造函数可以理解为:
1.调用时不必提供参数的构造函数。
2.所有参数都具有默认值的构造函数。
3.参数表为空的构造函数。换句话说,无参构造函数就是默认构造函数。
是不是对的???
默认构造函数就是:在你不提供任何构造函数的情况下,系统给出的一个不带参数,不包含函数代码的构造函数。
在创建对象时调用构造函数,构造函数来初始化成员变量。可以有多个构造函数,他们的区别就是参数不同。所有可以用不同的构造函数初始化一个对象。
默认构造函数,就是调用构造函数时,不必给出实参的构造函数。
在一个类中定义了全部是默认参数的构造函数后,不能再定义重载构造函数。例:
Box(int =10,int =10,int =10); 1
Box(); 2
Box(int,int); 3
若有以下定义语句:
Box box1; //是调用上面的第一个默认参数的构造函数,还是第二个默认构造函数
Box box2(15,30); //是调用上面的第一个默认参数的构造函数,还是第三个构造函数
扩展资料:
第2个构造函数是最基本,最原始的构造函数;第1个就是形参都已默认,指定了的构造函数,调用时实参可以传过去1个,2个,3个,甚至0个数据。
比如,第一个语句:Box box1;我们可以认为他是直接调用第2个构造函数,也可以认为他是调用了第1个构造函数,只不过没有实参传递过去而已,这样就产生了歧义。
同理,第二个语句,我们可以理解为它调用了第3 个构造函数。但同时,理解为它调用第1个构造函数,只不过仅传过去2个实参,也是可是说得通的。这也就产生了歧义。
事实上,上面3个函数中任意一个都可以说是另两个的重载函数,那么“在一个类中定义了全部是默认参数的构造函数后,不能再定义重载构造函数”就很好容易理解了
参考资料来源:百度百科——默认构造函数