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

引用C++/CLI中的棧對象總結

開發 后端
本文通過一些簡單的代碼講解C++/CLI中引用類型的棧對象的問題,下面對于這個問題進行詳細的說明介紹,希望大家多多切磋。

C++/CLI是.NET平臺下的C++語言,當然ISO C++的諸多語法保留下來,棧對象便是其一,但是他的語義發生了變化,通過處理對象的作用返回就會自動釋放其所占用的內存。

大家都知道.NET平臺與win32平臺最大的差別是托管內存,對C#了解的同志都知道,在C#里面分有值類型(value type)與引用類型(refrence type),值類型對象均分配在棧中,引用類型的都會分配在托管堆中。

換句話說就是對象的類型決定了其分配的位置,棧還是托管堆。棧內存的回收還是與以往一樣,是確定性的,托管堆內存的回收是由垃圾回收器來負責。然而在這樣的內存模型中,MyClass myClass;這個語句在C++/CLI中的語義會是什么呢?

眾所周知,高級語言得以出現,主要歸功于編譯器,語義會是怎么樣,當然也取決于編譯器的編譯結果。下面通過一些簡單的代碼進行講解,請留意代碼中的注釋

  1. private:  
  2. class SingleTonTranslator  
  3. {  
  4. public:  
  5. SingleTonTranslator()  
  6. {  
  7. signal(SignalExceptionClass::GetSignalNumber(),   
  8. SignalHandler);  
  9. }  
  10.  
  11. static void SignalHandler(int)  
  12. {  
  13. throw SignalExceptionClass();  
  14. }  
  15. };  
  16.  
  17. public:  
  18. SignalTranslator()  
  19. {  
  20. static SingleTonTranslator s_objTranslator;  
  21. }  
  22. };  
  23.  
  24. // An example for SIGSEGV  
  25. class SegmentationFault : public ExceptionTracer, public   
  26. exception  
  27. {  
  28. public:  
  29. static int GetSignalNumber() {return SIGSEGV;}  
  30. };  
  31.  
  32. SignalTranslator<SegmentationFault>   
  33. g_objSegmentationFaultTranslator;  
  34.  
  35. // An example for SIGFPE  
  36. class FloatingPointException : public ExceptionTracer, public   
  37. exception  
  38. {  
  39. public:  
  40. static int GetSignalNumber() {return SIGFPE;}  
  41. }; 

但看了無數篇闡述C++復雜性的文章,和爭論C++復雜性的吐沫星子(包括我前段時間寫的兩篇關于C++的總結)。我始終都有一個感覺——沒分析透,就跟盲人摸象一樣。正如“Why C++”的一位讀者批評的。

在文章里面沒有寫明到底哪些是C++的“非本質復雜性”。當然,我自己憑感覺就能知道,而接觸C++一段時間的人大致也能知道,但新手乃至非新手則對我所謂的“非本質復雜性”根本沒有一個具體的認識,這就使得那篇“Why C++”脫離了原本的意圖——面向所有C++使用者和學習者。

同樣的原因,在寫了“你應當如何學習C++/CLI一文之后,當孟巖先生邀請我給《程序員》寫一個系列的文章,介紹一下我在接觸C++的過程中的態度和認識轉變時,我雖然非常高興的答應了。

但直到現在3個月過去了還是顆粒無收。為什么?因為我覺得真正本質的問題沒有被清晰的觸摸到;所以直到現在我都沒有動筆,免得廢話說了一大堆,除了能被當成小說讀讀之外,對真正考慮是否要學習乃至使用C++/CLI的人未必有什么實際用處。

【編輯推薦】

  1. 簡介學習C++總結之談
  2. 對C++庫函數進行學習探索總結筆記
  3. C++類庫設計的基本構思與方法
  4. C++語言真的還有市場價值?
  5. C++類庫設計的基本構思與方法
責任編輯:chenqingxiang 來源: NET130
相關推薦

2024-01-18 10:27:30

C++引用函數

2010-01-25 11:13:18

C++棧對象

2010-02-03 14:30:04

C++棧對象

2011-07-20 15:58:53

C++引用

2016-04-13 11:05:02

C++引用匿名對象

2011-04-07 16:34:05

staticC++

2011-04-19 16:38:00

對象指針指針C++

2010-01-15 18:57:58

C++CLI

2015-05-13 10:37:58

C++指針與引用

2011-03-30 17:20:18

C++引用

2014-05-15 16:33:05

C++CLI調用C#

2010-01-20 09:48:44

面向對象

2010-01-11 15:29:13

引用C++語言

2011-04-13 16:50:54

CC++內存

2011-06-21 11:16:24

cc++

2024-01-29 16:55:38

C++引用開發

2010-01-15 18:06:20

C++引用

2010-01-21 09:34:57

C++語法

2010-01-27 16:05:06

C++堆棧

2011-07-14 23:27:05

C++引用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 97超碰免费 | 亚洲综合久久久 | 成人在线播放 | 日本高清aⅴ毛片免费 | 黄a大片| 美女二区 | 久久新视频| 天天干天天操天天看 | 青青草中文字幕 | 久久久91 | 欧美日日| 亚洲午夜精品一区二区三区他趣 | 91视频在线观看 | 狠狠色综合久久丁香婷婷 | 97精品国产97久久久久久免费 | 成年人视频在线免费观看 | 日韩在线观看视频一区 | 精品网| 色婷婷精品久久二区二区蜜臂av | 国产精品成人在线播放 | 午夜精品一区 | 国产精品日日做人人爱 | 日本 欧美 国产 | 久久久青草 | 国产剧情久久 | 国产精品国产三级国产aⅴ入口 | 亚洲一区二区三区免费在线 | 午夜成人在线视频 | 伊人久麻豆社区 | 国产精品久久 | 成人在线视频一区 | 国产精品久久久久久久午夜 | 99re在线 | 成人欧美日韩一区二区三区 | av中文字幕网 | 国产精品久久久久久久久免费樱桃 | 成人国产精品久久久 | 久久久青草婷婷精品综合日韩 | 在线国产一区 | 精品久久久久久亚洲精品 | 日韩一级|