1、构造函数
定义:用于创建一个类所有对象的函数,函数名应与类同名,另外声明定义可以合在一起构成隐式内联函数。使用方法参考下面程序:
#include<iostream>
using namespace std;
class rectangle
{
public:
rectangle(int l,int w)//rectangle类的构造函数
{length=l;width=w;}
int area()
{return length*width;}
private:
int length,width;
};
void main()
{
rectangle a(3,4);//创建对象a的同时进行初始化
cout<<a.area()<<endl;
}
输出结果:12
分析:在创建一个对象时,系统会自动调用该类的构造函数,对对象进行初始化,另外注意构造函数是没有返回值的。
讨论:如果无法确定矩形的长和宽,即不定义构造函数的话,系统会自动创建一个无参数也无任何功能的构造函数,仅用于创建一个对象,称为默认构造函数,如:
rectangle(){}
2、析构函数
析构函数用于在对象销毁后清除其所占用的内存空间,其格式与默认构造函数是一样的,即无参数无返回值,唯一的区别就是需要在函数前加一个符号“~”,具体如下:
#include<iostream>
using namespace std;
class A
{
public:
A(){cout<<"执行构造函数"<<endl;}
~A(){cout<<"执行析构函数"<<endl;}
};
int main()
{
A a;
return 0;
}
输出结果:执行构造函数
执行析构函数
注意:定义时加入函数的输出是为了说明创建对象时调用了构造函数,程序结束时对象a的寿命终止,将调用析构函数。另外,创建几个对象,就调用几次构造函数和析构函数。一般创建多个对象时,可以采用数组的形式,即将11行代码修改为:
A a[2];//创建有两个对象的对象数组
此时输出结果为:
执行构造函数
执行构造函数
执行析构函数
执行析构函数