类的6个默认成员函数:
构造函数
构造函数:主要完成初始化。是一个特殊的成员函数,名字和类名相同,创建类类型对象时由编译器自动调用,保证每个数据成员都有一个合适的初始值,并且在对象的生命周期内只调用一次。
构造函数的主要任务并不是开辟空间创建对象,而是初始化对象。
特征:
1.函数名与类名相同
2.无返回值
3.对象实例化时编译器自动调用对应的构造函数
4.构造函数可以重载
5.如果类中没有显示定义构造函数,则C++编译器就会自动生成一个无参的默认构造函数,一旦用户显示定义编译器将不再生成。如果用户定义了含有参数的构造函数,却定义了没有参数的类对象,此时编译器不会再生成一个默认的构造函数,抛出没有合适的默认构造函数可用。
无参的构造函数和全缺省的构造函数都称为默认构造函数,并且默认构造函数只能有一个。注意:无参
构造函数、全缺省构造函数、我们没写编译器默认生成的构造函数,都可以认为是默认成员函数。
1.基本类型(内置类型):int/char...
2.自定义类型:class/struct定义的类型...
默认生成的构造函数,对1不做处理,对2调用无参默认构造函数
析构函数
析构函数:与构造函数功能相反,析构函数不是完成对象的销毁,局部变量(在栈上)销毁工作是由编译器完成的。而对象在销毁时会自动调用析构函数,完成类的一些资源清理工作(比如在堆上动态开辟的资源)。
特性:
1.析构函数名是在类名前加上字符~
2.无参数无返回值
3.一个类有且只有一个析构函数。若未显示定义,系统会自动生成默认的析构