c++中的三个重要函数
当创建类时系统自动生成,自动调用。
- 构造函数 两种(有参和无参)
- 析构函数
- 复制构造函数
1.构造函数`
- 是一个特殊的成员函数,名字与类名相同
- 以保证每个数据成员都有一个合适的初值。
- 构造函数可以重载,实参决定了调用那个构造函数
- 如果没有显式定义时,编译器会提供一个默认的构造函数。
- 第一种 :无参构造函数
public:
//第一种
Person() {
cout<<"hello无参构造函数"<<endl;
}
- 第二种:有参构造函数
Person(int i,string n,int s):id(i),name(n),score(s){
cout<<"hello有参构造函数"<<endl;
};
结果如图:
2析构函数
当对象被销毁时,自动清理变量。
- 析构函数在类名(即构造函数名)加上字符~
~Person()
{
cout<<"析构函数"<<endl;
};
//输出函数
结果如图:
## 3 拷贝构造函数
- 使用情况
1.一个对象以值传递的方式传入函数体或从函数返回
2.一个对象需要通过另外一个对象进行初始化
- 特征
1、它是构造函数的重载。
2、它的参数必须使用同类型对象的引用传递。因为对象以值传递的方式进入函数体就会调用拷贝构造函数,这样就会形成无限递归。
3、如果没有显式定义,系统会自动合成一个默认的拷贝构造函数。默认的拷贝构造函数会依次拷贝类的数据成员完成初始化。