-
构造函数
1.与类同名且没有返回值。
2.创建对象的时候执行、多用于初始化。
3.可以有多个(最好保证有一个无参构造函数),称为函数重载,其他函数也可以重载。
4.函数重载需要保证函数参数列表不同。
5.编译器不要求必须提供构造函数。
struct MyClass
{
int a;
int b;
int c;
int d;
MyClass()
{
printf("无参构造函数\n");
}
MyClass(int a, int b, int c, int d)
{
this->a = a;
this->b = b;
this->c = c;
this->d = d;
pritnf("有参构造函数\n");
}
};
-
析构函数
1.析构函数与类同名且名称前面添加~符号。
2.析构函数只有一个、无返回值、不含参数、不允许被重载,主要用于清理工作。
3.析构函数在对象被销毁的时候执行。
4.析构函数何时执行?
a.当对象在堆栈中分配(例如:当对象创建在函数main()中,当main()函数执行完成后,析构函数被执行。)
b.当对象在全局区分配(例如:当对象创建为全局变量时,当程序在退出之前,析构函数被执行。)
5.编译器不要求必须提供析构函数。
struct MyClass
{
MyClass()
{
printf("构造函数\n");
}
~MyClass()
{
printf("析构函数\n");
}
};