一.基本特性:
1.构造函数用来处理对象的初始化,建立对象时自动执行;
2.构造函数需要与类型同名,不具有任何类型,不返回任何值,不能被用户调用;
二.默认构造函数(或者叫缺省构造函数):
1.没有任何参数的构造函数称为默认构造函数;
2.定义了全部是默认参数的构造函数是默认构造函数;
class Box
{
public:
Box(int h=10,int w=10,int len=10); //或者这样定义Box(int=10,int=10,int=10);
};
注:一个类只能有一个默认构造函数,以上两种构造函数只能出现一种;
因为:
Box(); //声明无参的默认构造函数
Box(int=10,int=10, int=10); //声明全部参数的构造函数
在建立对象时,如果写成 Box a; 系统则无法识别该调用哪个构造函数;
三.重载构造函数:构造函数具有相同的名字,而参数的个数或参数的类型不相同。
class Box
{
public:
Box(); // 无参构造函数
Box(int h, int w, int len); // 三个参数的构造函数
Box(int h); // 一个参数的构造函数
Box(int h, int w); // 两个参数构造函数
};
注:定义了全部是默认参数的构造函数,则不能在定义重载构造函数;
因为:
Box(int=10, int=10, int=10);
Box(int,int);
当定义Box a(10,20);系统也无法识别该调用哪个构造函数;