1.构造函数
1.作用
写在对象创建函数内部,创建对象的时候会自动调用,且只调用一次。
2.语法特点
1.函数名与类名相同。
2.没有返回值,不写void。
3.构建函数可以有参数,可以发生重载。
3.代码表现
记得调成公共类型,非则报错
#include<iostream>
using namespace std;
#include<string>
class person
{
public:
person()
{
cout << "调用构造函数" << endl;
}
};
int main()
{
person p;
return 0;
}
运行结果:
2.析构函数
1.作用
进行清理的操作,程序销毁前自动调用,且只调用一次。
2.语法特点
1.函数名是在类名前面加“~”
2.没有返回值,不写void
3.没有参数,不可以重载
3.代码实现
记得调成公共类型,非则报错
#include<iostream>
using namespace std;
#include<string>
class person
{
public://记得调成公共类型,否则报错
~person()
{
cout << "调用析构函数" << endl;
}
};
void fun()
{
person p;
}
int main()
{
fun();
system("pause");
return 0;
}
4.特别注意
析构函数会在创建对象的程序段销毁的时候执行,比如一个局部的(在栈上存储)函数。
#include<iostream>
using namespace std;
#include<string>
class person
{
public:
~person()
{
cout << "调用析构函数" << endl;
}
};
int main()
{
person p;
system("pause");
return 0;
}
执行结果遇上一个不同
先执行完system("pause");才会弹出析构函数调用。
3.注意
构造和析构是必须有的,但是如果我们不提供,程序会自动提供一个空的构造或析构。