构造函数和析构函数,分别对应变量的初始化和清理,变量没有初始化,使用后果未知;没有清理,则会内存管理出现安全问题。
构造函数和析构函数写法
构造函数:与类名相同,没有返回值,不写void,可以发生重载,可以有参数,编译器自动调用,只调用一次。
析构函数:~类名,没有返回值,不写void,不可以发生重载,不可以有参数,编译器自动调用,只调用一次。
构造函数和析构函数的作用域是public下才可以调用到,不写默认private,调用不到。
如果程序猿不提供,系统会默认提供,构造和析构函数,函数体为空。
1 class Person{ 2 public: 3 Person(){ 4 cout << "无参构造函数" << endl; 5 } 6 ~Person(){ 7 cout << "无参析构函数" << endl; 8 } 9 }; 10 11 void test01(){ 12 Person p; 13 } 14 15 int main(){ 16 17 test01(); 18 system("pause"); 19 return 0; 20 }
构造函数的分类和调用
按照参数分类:有参构造和无参构造;按照类型分类:普通构造和拷贝构造函数。