C++之构造函数与析构函数

构造函数:是类的一种特殊成员函数,它在每次创建类的新对象时执行

使用构造函数有以下几点需要注意

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;
 }

猜你喜欢

转载自blog.csdn.net/gxgalaxy/article/details/81272287