1、构造函数可以重载,也可以带有缺省参数
例如如下这样,都构成重载,编译器会自动选择符合的构造函数
string(void)
string(const sting&str);
string(const string&str,size_t len=5);
string(const char*s);
2、缺省构造函数(无参构造函数)
①如果类中自己没有定义构造函数,那么编译器会为该类提供一个缺省的无参构造函数
->对于基本类型的成员变量不做初始化
->对于类类型的成员变量(成员子对象),会自动调用相应类的无参构造函数来初始化
②如果类中自己定义了构造函数,无论是否有参数,编译器都不会在提供缺省的无参构造函数
3、类型转换构造函数
explicit:显示的告诉编译器进行显示转换,使用它修饰的构造函数,强制要求类型转换的过程必须显式完成
格式:explicit 类名(源类型){}
例如: