定义:在未提供显式的初始值时,用来创建对象的构造函数。
举例:
class TestClass
{
private:
int m_a;
int m_b;
public:
TestClass(); //默认构造函数1
TestClass(int a,int b); //构造函数
TestClass(int a=10,int b=5); //默认构造函数2
};//注意,实际运用时一个类中默认构造函数1与默认构造函数2只能出现1个,这里只是为了举例说明
总结:
1)默认构造函数主要是用来完成该形式的初始化的:TestClass a; //在这种情况下,如果程序员没有定义默认构造函数,编译器会报错。
2)如果程序员没有提供任何构造函数,那么编译器会自动生成一个默认构造函数。
3)定义默认构造函数有两种方式,一是如上例中的默认构造函数1,定义一个无参的构造函数;二是如上例中的默认构造函数2,定义一个所有形参都有默认值的构造函数。
4)一个类只能有一个默认构造函数。
5)如果程序员提供了任何形式的构造函数,那么编译器就不会再提供默认构造函数了。