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

C++虛析構函數基本內容概述

開發 后端
我們在這里將會通過一段代碼示例的解讀來為大家詳細分析一下C++虛析構函數的相關應用方法以及基本概念,讓大家對此有一個充分的掌握。

 

今天,我們將會在這篇文章中為大家詳細介紹一下C++虛析構函數的一些基本知識。相信對于剛剛接觸C++編程語言的初學者們現在急需要諸如這方面的基礎知識的講解內容,以加大自己對這一語言的認知。#t#

C++的多態性是通過虛函數來實現的,虛函數的出現使得動態鏈接成為可能。

基于構造函數的特點,不能將構造函數定義為虛函數,但可以將析構函數定義為虛函數。當派生類的對象從內存中撤銷時,會先調用派生類的析構函數,然后自動調用基類的析構函數,如此看來析構函數也沒有必要定義為虛函數。

但是考慮如下這種情況,如果使用基類指針指向派生類的對象,而這個派生類對象恰好是用new運算創建的,這種情況下會如何呢?當程序使用delete運算撤銷派生類對象時,這時只會調用基類的析構函數,而沒有調用派生類的析構函數。如果使用的是虛析構函數的話,就不一樣了,所以定義虛析構函數有時候還是很有必要的。下面這段程序就說明了上面的問題:

沒有定義虛C++虛析構函數時,code如下:

 

  1. #include < iostream> 
  2. using namespace std;  
  3. class A  
  4. {  
  5. public:  
  6. A(){}  
  7. ~A()  
  8. {  
  9. cout< < "A::destructor"< < endl;  
  10. }  
  11. };  
  12. class B:public A   
  13. {  
  14. public:  
  15. B(){}  
  16. ~B()  
  17. {  
  18. cout< < "B::destructor"< < endl;  
  19. }  
  20. };  
  21. int main()  
  22. {  
  23. A *pA = new B;  
  24. //  
  25. delete pA;  
  26. return 0;  

輸出的是A::destructor

這說明delete pA只是調用了基類A的析構函數,而沒有調用子類B的析構函數,這不是我們所想要的。而把基類A的析構函數定義為虛函數后,就可以達到了我們所想要的效果了。code如下:

  1. #include < iostream> 
  2. using namespace std;  
  3. class A  
  4. {  
  5. public:  
  6. A(){}  
  7. virtual ~A()  
  8. {  
  9. cout< < "A::destructor"< < endl;  
  10. }  
  11. };  
  12. class B:public A   
  13. {  
  14. public:  
  15. B(){}  
  16. ~B()  
  17. {  
  18. cout< < "B::destructor"< < endl;  
  19. }  
  20. };  
  21. int main()  
  22. {  
  23. A *pA = new B;  
  24. //  
  25. delete pA;  
  26. return 0;  

輸出如下:

B::destrutor

A::destrutor

以上就是對C++虛析構函數的相關介紹。

責任編輯:曹凱 來源: 博客園
相關推薦

2010-02-06 13:58:13

C++ Bost庫

2010-02-02 15:12:09

C++ explici

2024-12-19 14:42:15

C++內存泄漏內存管理

2010-02-05 10:08:55

C++名字空間

2010-02-04 15:51:07

C++迭代器

2025-02-18 00:08:00

代碼C++RAII

2010-01-28 15:33:37

Android程序架構

2010-03-02 15:53:02

WCF服務合同

2010-02-04 16:39:26

C++析構函數

2010-01-18 15:53:27

C++析構函數

2010-03-02 17:55:37

WCF終結點地址

2010-02-03 15:06:02

C++可變參數表

2011-07-15 01:29:39

C++析構函數

2025-04-11 07:50:00

虛析構函數C++開發

2010-02-25 17:04:54

WCF實例上下文

2009-08-14 17:24:28

C#構造函數和析構函數

2009-09-03 13:14:55

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

2010-01-04 15:21:37

Silverlight

2009-09-10 10:47:05

C# form

2010-02-01 11:22:09

C++虛函數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩免费在线视频 | 欧美日韩久 | 国产在线观看 | 国产精品久久久久久模特 | 日韩久草| 三级黄色片在线 | www.精品国产 | 91精品国产91久久综合桃花 | 国产激情在线观看视频 | 日本精品在线播放 | 成人亚洲视频 | 蜜臀网| 精品一区国产 | 国产一区二区视频在线 | 国产精品久久久av | 国产激情在线播放 | 中文视频在线 | 免费一级网站 | 久久精品这里精品 | 中文在线视频 | 69视频在线播放 | 国产麻豆乱码精品一区二区三区 | 久久久高清| 日韩成人一区 | 天天躁日日躁xxxxaaaa | 91麻豆精品国产91久久久久久 | 福利视频网站 | 天堂网中文字幕在线观看 | 伊人亚洲| 国产精品亚洲片在线播放 | 超碰美女在线 | 日韩精品在线播放 | 美女在线观看av | 在线一区二区国产 | 狠狠视频 | 欧美偷偷| 小h片免费观看久久久久 | 成人黄页在线观看 | 正在播放国产精品 | 99视频在线播放 | 91综合网 |