C++中如何使用析构函数

本篇文章给大家分享的是有关C++中如何使用析构函数,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

专注于为中小企业提供成都网站设计、成都网站建设、外贸网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业宜阳免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

C#中的终结器(也就是析构函数)类似于C++析构函数,但是由于编译时无法确定终结器的执行时机,因此两者实际上存在相当大的区别。垃圾回收器调用C#终结器的时机是在对象上一次使用之后,但是在应用程序关闭之前的某个时间。相反,只要一个对象(而非指针)超出范围,(此处的范围指作用域),就会自动调用C++析构函数。对此我还真有点怀疑,于是分别写了C++与C#的代码看一下情况是否真的是这样。

using System;  using System.Collections.Generic;  using System.Linq;  using System.Text;  namespace ConsoleApplication1  {  class Program  {  static void Main(string[] args)  {  test();  }  static void test()  {  myPeople p = new myPeople();  Console.WriteLine("Complate");  }  }  class myPeople  {  public myPeople()  {  Console.WriteLine("Construct");  }  ~myPeople()  {  Console.WriteLine("Dispose");  }  }  }

于是我分别在各个方法中插入断点然后F5开始逐步调试,我发现没有myPeople的调用是在test()方法执行完毕后,Main()方法结束执行器调用的。再看C++

#include #include using namespace std;  class myPeople  {  public :  myPeople()  {  cout<<"Construct"<

通过上面的执行过程就会发现确实如同本质论作者说的那样,C#调用终结器与C++析构函数区别是相当大的。C#清理一个类的资源并不是确定的,而C++类资源的释放是该类超出作用域之后便开始调用析构函数。

以上就是C++中如何使用析构函数,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。


名称栏目:C++中如何使用析构函数
文章出自:http://myzitong.com/article/gjesde.html