构造函数与析构函数:分别用来处理对象的创建和销毁
· 构造函数
构造函数在对象创建的时候被自动调用(如果没有自己定义,那么调用默认的),所以这时我们可以完成很多不便在对象创建后进行的事情(各种初始化)
1. 构造函数没有返回值(实际上构造函数返回的应该就是对象本身); 2. 构造函数同类名; 3. 利用构造函数的参数列表可以完成有差别的对象定义
class Teacher //类的声明(属性加行为)
{
public:
Teacher() //一般都会写出默认的构造函数,同时根据需要添加带参数的构造函数来完成一些特殊的初始化任务
{}
Teacher(int mAge) //法一:带参数的构造函数
{
age = mAge;
}
// Teacher(int mAge) //法二:带参数的构造函数,并使用初始化列表完成对象属性初始化
// : age(mAge)
// {
// cout<<"alala"<<endl;
// }
//
}
· 析构函数
析构函数是在对象的生命周期即将结束之前自动调用的,所以我们会在析构函数中处理一些对象被销毁前的清理工作。
1. 析构函数在类名前加~; 2. 析构函数没有返回值; 3. 析构函数不接受任何参数(与构造函数最大的不同)
public:
~Teacher() //析构函数
{
//进行清理工作(例如对象创建时申请的内存资源,需要在析构函数中进行合理地释放)
cout<<"春蚕到死丝方尽,蜡炬成灰泪始干"<<endl; //这里没有什么额外的清理工作,直接输出
}