成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C++析構函數不同使用方式

開發 后端
雖然說C#中的終結器與C++析構函數向類似,但是在實際使用后,我們會發現,他們之間的差別還是相當大的。我們在這里會為大家一一講述。

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

C#中的終結器(也就是析構函數)類似于C++析構函數,但是由于編譯時無法確定終結器的執行時機,因此兩者實際上存在相當大的區別。垃圾回收器調用C#終結器的時機是在對象上一次使用之后,但是在應用程序關閉之前的某個時間。相反,只要一個對象(而非指針)超出范圍,(此處的范圍指作用域),就會自動調用C++析構函數。對此我還真有點懷疑,于是分別寫了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. }  

于是我分別在各個方法中插入斷點然后F5開始逐步調試,我發現沒有myPeople的調用是在test()方法執行完畢后,Main()方法結束執行器調用的。再看C++

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

通過上面的執行過程就會發現確實如同本質論作者說的那樣,C#調用終結器與C++析構函數區別是相當大的。C#清理一個類的資源并不是確定的,而C++類資源的釋放是該類超出作用域之后便開始調用析構函數。

【編輯推薦】

  1. C++ delete具體用法簡述
  2. C++二維數組new幾種應用方法點評
  3. C++回調函數代碼示例解讀
  4. C++迭代器基本內容講述
  5. C++淺拷貝具體內容講述
責任編輯:曹凱 來源: 博客園
相關推薦

2025-02-18 00:08:00

代碼C++RAII

2010-01-18 15:53:27

C++析構函數

2011-07-15 01:29:39

C++析構函數

2010-01-20 14:25:56

函數調用

2010-02-05 13:35:19

C++虛析構函數

2024-12-19 14:42:15

C++內存泄漏內存管理

2009-08-14 17:24:28

C#構造函數和析構函數

2009-09-03 13:14:55

C#構造函數C#析構函數

2021-12-11 19:02:03

函數C++對象

2009-07-30 15:24:13

C#析構函數C#構造函數

2011-06-15 09:47:14

C++

2025-04-11 07:50:00

虛析構函數C++開發

2024-12-11 16:00:00

C++函數編譯器

2010-02-02 17:39:31

C++構造函數

2010-01-25 10:10:42

C++函數參數

2010-02-06 14:12:54

C++繼承方式

2010-02-03 15:27:26

C++ static

2010-02-04 14:29:45

C++ typenam

2009-09-02 10:49:46

C#調用析構方法

2010-07-20 09:52:27

Perl構造函數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品一级 | 在线视频一区二区三区 | 男人天堂手机在线视频 | 日韩三| a级片在线观看 | 综合久久综合久久 | 欧美一级黄色免费看 | 日韩欧美中文字幕在线观看 | 久久99国产精品 | 狠狠躁夜夜躁人人爽天天高潮 | 日韩国产中文字幕 | 精品入口麻豆88视频 | 一级黄色片美国 | 欧美一级全黄 | 久久精品国产一区二区电影 | 国产99久久 | 国产精品一区二区三区久久久 | 久久精品亚洲精品国产欧美 | 国产美女精品 | 99pao成人国产永久免费视频 | 91视频进入| 色综合视频在线 | 国产精品日韩欧美一区二区三区 | 香蕉婷婷 | 日本欧美黄色片 | 亚洲国产一区二区视频 | 在线成人精品视频 | 精品亚洲一区二区 | 日韩欧美在线免费观看视频 | 日韩精品一区二区三区在线播放 | 久久精品99 | 在线欧美视频 | 国产aaaaav久久久一区二区 | 久久机热 | www.一级毛片 | 亚洲国产精品成人 | 91精品国产综合久久久久久丝袜 | 欧美在线天堂 | 人人艹人人爽 | 欧美aⅴ | www.日本国产 |