前言:

析构函数和构造函数是一对。构造函数用于创建对象,而析构函数是用来撤销对象。简单的说:一个对象出生的时候,使用构造函数,死掉的时候,使用析构函数。构造函数 和 析构函数 各有各的用途,在构造函数中,我们来获取资源;在析构函数中,我们来释放资源。释放了之后,这些资源就会被回收,可以被重新利用。比如说,我们在构造函数里打开文件,在析构函数里关闭打开的文件。这是一个比较好的做法。在构造函数里,我们去连接数据库的连接,在析构函数里关闭数据库的连接。在构造函数里动态的分配内存,那么在析构函数里把动态分配的内存回收。

概念:

1.类的析构函数是类的一种特殊的成员函数,它会在每次删除所创建的对象时执行。析构函数的名称与类的名称是完全相同的,只是在前面加了个波浪号(~)作为前缀,它不会返回任何值,也不能带有任何参数。析构函数有助于在跳出程序(比如关闭文件、释放内存等)前释放资源。

2.类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void。构造函数可用于为某些成员变量设置初始值。

以下的代码方便大家对二者概念的理解:

#include <iostream>

using namespace std;

class Line
{
public:
void setLength( double len );
double getLength( void );
Line(); // 这是构造函数声明
~Line(); // 这是析构函数声明 private:
double length;
}; // 成员函数定义,包括构造函数
Line::Line(void)
{
cout << "Object is being created" << endl;
}
Line::~Line(void)
{
cout << "Object is being deleted" << endl;
} void Line::setLength( double len )
{
length = len;
} double Line::getLength( void )
{
return length;
}
// 程序的主函数
int main( )
{
Line line; // 设置长度
line.setLength(6.0);
cout << "Length of line : " << line.getLength() <<endl; return ;
}

输出结果如下:

Object is being created
Length of line :
Object is being deleted

最新文章

  1. Flexbox 布局
  2. github心得
  3. Codeforces Round #267 Div2 C George and Job --DP
  4. LF will be replaced by CRLF in git add
  5. oracle行转列、列转行
  6. Asp.net文件缓存依赖
  7. NET基础课--JIT编译器如何工作1
  8. JDBC之代码优化
  9. HDU 1010 Tempter of the Bone【DFS经典题+奇偶剪枝详解】
  10. hive优化之——控制hive任务中的map数和reduce数
  11. php进阶篇
  12. 如何将数据库中的值经过servlet传入到jsp页面,并且用EL表达式显示出值
  13. 友元(friend)
  14. DNS 原理
  15. Windows 添加永久静态路由
  16. Python3 批量更改文件后缀名
  17. Nhibernate学习的第二天
  18. jquery 選擇器
  19. 【BZOJ2648】SJY摆棋子
  20. Cache专用: SoftReference

热门文章

  1. 安装多个xcode对homebrew影响
  2. 大端(bigend)与小端(littleend)
  3. 2.3.FastDFS-单机拆分版-与Nginx整合配置
  4. [linux] ARCH LINUX 常见问题及实用工具汇总
  5. Bugku-CTF加密篇之ok(Ook!)
  6. 九、Appium-python-UI自动化之通过text定位
  7. 常见排序的Java实现
  8. Cat4500升级注意事项
  9. java中静态初始化块的执行顺序
  10. 杭电2629 Identity Card