日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C++析構(gòu)函數(shù)不同使用方式

C++編程語言可以被看做是C語言的升級版本,它的許多應(yīng)用方法都與其他編程語言有相似之處。不過在一些特定的使用方法中,還是有些不同的應(yīng)用方式。在這里我們就先來了解一下C++析構(gòu)函數(shù)的一些特殊應(yīng)用方式。

C#中的終結(jié)器(也就是析構(gòu)函數(shù))類似于C++析構(gòu)函數(shù),但是由于編譯時(shí)無法確定終結(jié)器的執(zhí)行時(shí)機(jī),因此兩者實(shí)際上存在相當(dāng)大的區(qū)別。垃圾回收器調(diào)用C#終結(jié)器的時(shí)機(jī)是在對象上一次使用之后,但是在應(yīng)用程序關(guān)閉之前的某個(gè)時(shí)間。相反,只要一個(gè)對象(而非指針)超出范圍,(此處的范圍指作用域),就會(huì)自動(dòng)調(diào)用C++析構(gòu)函數(shù)。對此我還真有點(diǎn)懷疑,于是分別寫了C++與C#的代碼看一下情況是否真的是這樣。

 
 
 
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5. namespace ConsoleApplication1  
  6. {  
  7. class Program  
  8. {  
  9. static void Main(string[] args)  
  10. {  
  11. test();  
  12. }  
  13. static void test()  
  14. {  
  15. myPeople p = new myPeople();  
  16. Console.WriteLine("Complate");  
  17. }  
  18. }  
  19. class myPeople  
  20. {  
  21. public myPeople()  
  22. {  
  23. Console.WriteLine("Construct");  
  24. }  
  25. ~myPeople()  
  26. {  
  27. Console.WriteLine("Dispose");  
  28. }  
  29. }  

于是我分別在各個(gè)方法中插入斷點(diǎn)然后F5開始逐步調(diào)試,我發(fā)現(xiàn)沒有myPeople的調(diào)用是在test()方法執(zhí)行完畢后,Main()方法結(jié)束執(zhí)行器調(diào)用的。再看C++

 
 
 
  1. #include 
  2. #include 
  3. using namespace std;  
  4. class myPeople  
  5. {  
  6. public :  
  7. myPeople()  
  8. {  
  9. cout<<"Construct"<
  10. }  
  11. ~myPeople()  
  12. {  
  13. cout<<"Dispose"<
  14. }  
  15. };  
  16. void myMethod()  
  17. {  
  18. myPeople my;;  
  19. cout<<"Complate"<
  20. }  
  21. int main()  
  22. {  
  23. myMethod();  

通過上面的執(zhí)行過程就會(huì)發(fā)現(xiàn)確實(shí)如同本質(zhì)論作者說的那樣,C#調(diào)用終結(jié)器與C++析構(gòu)函數(shù)區(qū)別是相當(dāng)大的。C#清理一個(gè)類的資源并不是確定的,而C++類資源的釋放是該類超出作用域之后便開始調(diào)用析構(gòu)函數(shù)。

【編輯推薦】

  1. C++ delete具體用法簡述
  2. C++二維數(shù)組new幾種應(yīng)用方法點(diǎn)評
  3. C++回調(diào)函數(shù)代碼示例解讀
  4. C++迭代器基本內(nèi)容講述
  5. C++淺拷貝具體內(nèi)容講述

分享文章:C++析構(gòu)函數(shù)不同使用方式
分享URL:http://www.5511xx.com/article/cdeocii.html