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

C#構造函數與C++的區別淺析

開發 后端
C#構造函數與C++的有什么樣子的區別呢?那么本文就向你從二方面介紹C#構造函數與C++的區別。

C#構造函數與C++的區別1、

C++ 不允許在一個構造函數中調用另外一個構造函數(稱為委派構造函數調用),而 C# 則允許。例如:

C++構造函數示例:

  1. struct Point {  
  2. public:  
  3. int X, Y;  
  4. Point(int x, int y);  
  5. Point(Point pt) : Point(pt.X, pt.Y) { } // 錯誤,C++ 不允許  
  6. };  

C#構造函數示例:

  1. struct Point {  
  2. public int X, Y;  
  3. public Point(int x, int y);  
  4. public Point(Point pt) : Point(pt.X, pt.Y) { } // 可以,C# 允許  
  5. };  

委派構造函數調用語法上非常自然和易懂,因此你也許會質疑 C++ 不提供它是不是故意給程序員添麻煩。事實上,C++ 不提供這一特性并不是出于語法上的考慮,而是出于資源管理的考慮(噢,這樣的事情對 C++ 來說還有很多很多)。

我們知道,C++ 的構造函數用于分配資源,而析構函數用于釋放資源,構造函數和析構函數調用必須匹配,否則就打破了 C++ 的基本規則。

如果允許委派構造函數調用,則顯然會打破這一規則——構造函數被執行兩次,而析構函數只執行一次。當然,對一些類,例如前面的那個 Point 來說這不是個問題,但是從語言機制的角度講這個特性可能屬于“危險”的特性。注:在最新的 C++ 標準提議草案中,Herb 等人有一個關于允許委派構造函數調用的提案,當然這很大程度上是為了方便 C++/CLI 綁定。

C#構造函數與C++的區別2、

在 C++ 構造函數中,虛函數調用會被編譯器自動轉為普通函數調用,而在 C# 構造函數中允許進行虛函數調用。C++ 這樣處理自然有它的原因——在 C++ 中,構造函數執行完成后對象才初始化好,對于多態對象來說,也就意味著構造函數在背后執行了很重要的一件事情——初始化對象的虛函數表。

如果我們在基類的構造函數中調用了虛函數,則因為此時對象的虛函數表仍舊是基類的虛函數表,所以無法進行正確的虛函數調用。也就是這個原因,通常我們應該避免在構造函數中調用虛函數,因為它違背了虛函數的語義。而在 C# 中,在對象的構造函數執行之前對象的類型信息就已經初始化好了,所以可以進行正常的虛函數調用。

C#構造函數與C++的區別的基本情況就向你介紹到這里,希望對你學習C#構造函數與C++的區別有所幫助。

【編輯推薦】

  1. C#結構體變量學習淺談
  2. 解析C#結構體指針
  3. C#指針使用簡析
  4. C#結構學習的詳細介紹
  5. 關于C#結構的一些認識
責任編輯:仲衡 來源: qqread.com
相關推薦

2011-06-11 21:36:44

C#C++

2009-11-17 09:07:55

靜態構造函數

2010-01-27 17:16:52

C++構造函數

2009-07-31 15:44:02

C#靜態構造函數

2009-08-14 09:15:28

C#調用構造函數

2011-06-14 12:27:38

C#C++

2009-08-13 17:38:42

C#構造函數

2009-08-13 18:15:06

C#繼承構造函數

2009-08-14 09:43:59

C#復制構造函數

2009-08-13 18:02:11

C#靜態構造函數

2009-09-18 09:02:45

CLR Via C#

2009-08-14 09:58:09

C#復制構造函數

2009-08-13 13:42:54

C#構造函數

2009-08-14 09:50:46

C#復制構造函數

2009-08-13 18:36:36

C#繼承構造函數

2025-02-06 13:23:09

C++函數參數

2009-08-10 14:43:03

C#函數Convert

2009-07-31 16:00:30

C#函數重載

2009-07-31 14:03:21

C# Format函數

2009-08-24 13:41:23

C# 泛型約束
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 人人鲁人人莫人人爱精品 | 国产免费一二三区 | 国产有码 | 97久久久久久久久 | 日本又色又爽又黄的大片 | 波霸ol一区二区 | a在线视频| 中文字幕亚洲一区 | 日日干日日操 | 日本a v在线播放 | 国产视频一区在线观看 | 日韩一区在线观看视频 | 成人网址在线观看 | 久久不卡日韩美女 | 91精品国产91久久综合桃花 | 成人欧美一区二区三区色青冈 | 久久成人人人人精品欧 | 国产在线精品一区二区三区 | 久久天天躁狠狠躁夜夜躁2014 | 91国内精精品久久久久久婷婷 | 国产亚洲精品综合一区 | 欧美日韩国产精品一区 | 精品国产区 | 亚洲福利网 | 国产麻豆乱码精品一区二区三区 | 国产精品自拍av | 久久久久精 | 黄在线 | 午夜91| 国产精品一区二区av | 黄色小视频大全 | 99热这里有精品 | 99久久国产综合精品麻豆 | 国产日韩久久 | 成人在线观看免费 | 色橹橹欧美在线观看视频高清 | 国产精品自拍啪啪 | 91免费观看视频 | 2020亚洲天堂 | 亚洲视频一区二区三区 | 日韩在线一区二区三区 |