构造函数:是类的一种特殊成员函数,它在每次创建类的新对象时执行
使用构造函数有以下几点需要注意:
1.函数名与类名同名
2.不能定义返回值类型,也不能有return 语句
3.构造函数可以有参数,也可以没有
4.当没有显示声明构造函数的时候,编译器会隐式生成一个默认构造函数
实例:
#include<iostream>
using namespace std;
class AREA
{
public:
AREA(); //这是构造函数
void setwidth (double wid);
double getwidth(void);
private:
double width;
};
//构造函数的定义
AREA::AREA(void)
{
cout << "object is being created" << endl;
}
void AREA::setwidth(double wid)
{
width=wid;
}
double AREA::getwidth(void)
{
return width;
}
int main()
{
AREA AREA;
AREA.setwidth(6.0);
cout << "width =" << AREA.getwidth()<< endl;
return 0;
}
构造函数初始化列表:构造函数初始化列表,以冒号开始,逗号分隔数据列表
class B
{
public:
B(int x);
~B(){}
private:
int a;
int b;
int c;
};
B::B(int x):a(x),b(x),c(x) //构造函数成员初始值顺序与成员的声明顺序最好保持一致
{
}
析构函数:是类的另一种特殊的成员函数,它在每次删除所创建对象时执行
使用析构函数时应注意以下几点:
1.函数名称与类名称完全相同,只在前面加了个~
2.不会返回任何值,也不能带有任何参数
3.析构函数有助于在跳出程序前释放资源
实例:
#include<iostream>
using namespace std;
class A
{
public:
A(); //构造函数声明
~A(); //析构函数声明
};
//构造函数的定义
A::A(void)
{
cout << "object is being created " << endl;
}
//析构函数的定义
A::~A(void)
{
cout << "object is being deleted " << endl;
}
int main()
{
A A;
return 0;
}