C++学习总结_析构函数

来源:互联网 发布:大数据时时彩在线计划 编辑:程序博客网 时间:2024/05/18 18:18

一、析构函数的一个简单例子:

#include <iostream>
using namespace std;
class A{
public :
 A(){}
 ~A(){}//这就是一个析构函数,比无参构造函数多了一个浪纹~符号
};
int main()
{
 return 0;
}

二、析构函数的作用:

      析构函数与构造函数相反就是用来,(构造函数是用来构造一个对象)而析构函数是在对象被销毁后用来释放对象所占用的内存空间。可以清除由构造函数所创建的内存空间。

三、析构函数的注意问题:

1、析构函数和无参构造函数的唯一区别就是前面多了一个浪纹~符号。

2、析构函数和构造函数一样不能有返回值

3、析构函数不能含有参数,也就是说析构函数就一个不能重载。

四、析构函数何时被调用——对象销毁后被调用

一个例子:

#include <iostream>
using namespace std;
class A
{
public :
 A(){cout<<"无参构造函数被调用!/n";}
 ~A(){cout<<"析构造函数被调用!/n";}//析构函数
};
int main()
{
 A a;//定义一个A类型的对象,a会调用无参构造方法A(){}
 return 0;
}//main函数结束,编译器自动调用析构函数,释放a对象。

五、总结

1、构造函数用来创建一个对象

2,析构函数用来销毁一个对象(销毁这个对象所占用的内存空间)

六、类中声明函数,类外定义函数

#include <iostream>
using namespace std;
class A
{
public :
 A();//类中声明无参构造函数
 ~A();//类中声明析构函数
};
//类外定义无参构造函数
A::A(){cout<<"无参构造函数被调用!/n";}
//类外定义析构函数
A::~A(){cout<<"析构造函数被调用!/n";}//析构函数
int main()
{
 A a;//定义一个A类型的对象,a会调用无参构造方法A(){}
 return 0;
}//main函数结束,编译器自动调用析构函数,释放a对象。

六、使用对象数组定义对象,这个例子输出四句话构造方法执行两次,析构函数执行两次。

#include <iostream>
using namespace std;
class A
{
public :
 A();//类中声明无参构造函数
 ~A();//类中声明析构函数
};
//类外定义无参构造函数
A::A(){cout<<"无参构造函数被调用!/n";}
//类外定义析构函数
A::~A(){cout<<"析构造函数被调用!/n";}//析构函数
int main()
{
 A a[2];//使用对象数组定义2个A类型的对象,a会调用无参构造方法A(){}两次
 return 0;
}//main函数结束,编译器自动调用析构函数,释放a[0]、a[1]对象,析构方法也会被执行两次。

原创粉丝点击