构造函数
构造函数也叫构造器,在对象创建的时候自动调用,一般用于对象成员的初始化。
- 构造函数与类名同,没有返回值,可以重载,可以有参数。
- 一旦自定义了构造函数,就必须使用其中一个初始化对象。
- 通过malloc创建的对象不会调用构造函数(new会调用)
- 在某些特定情况下,编译器才会为类生成空的五参构造函数.
-
如果自定义了构造函数,除了全局区(初始化0),其他都不会初始化成员变量。
image.png
image.png
析构函数
- 在对象销毁后自动调用,一般用于对象的清理。
- 析构对象以~开头,无参。
- malloc创建的也不会调用析构函数。
~person();
构造函数和析构函数要声明为public,才能被外界正确使用。
- 析构函数一般做内存清理
析构函数用例:
struct Car{
Car(){
cout<"调用构造"<<endl;
}
~Car(){
cout<"调用析构"<<endl;
}
}
struct Person{
int age;
Person(){
Car *m_car = nullptr;
cout<"调用构造"<<endl;
m_car = new Car();
}
~Person(){
cout<"调用析构"<<endl;
delete car;
}
}
image.png
- 对象内部创建的空间,由对象内部回收
网友评论