日韩无码专区无码一级三级片|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++/CLI中的棧對象總結(jié)

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

創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站建設(shè)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的余慶網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

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

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

眾所周知,高級語言得以出現(xiàn),主要?dú)w功于編譯器,語義會是怎么樣,當(dāng)然也取決于編譯器的編譯結(jié)果。下面通過一些簡單的代碼進(jìn)行講解,請留意代碼中的注釋

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

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

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

同樣的原因,在寫了“你應(yīng)當(dāng)如何學(xué)習(xí)C++/CLI一文之后,當(dāng)孟巖先生邀請我給《程序員》寫一個(gè)系列的文章,介紹一下我在接觸C++的過程中的態(tài)度和認(rèn)識轉(zhuǎn)變時(shí),我雖然非常高興的答應(yīng)了。

但直到現(xiàn)在3個(gè)月過去了還是顆粒無收。為什么?因?yàn)槲矣X得真正本質(zhì)的問題沒有被清晰的觸摸到;所以直到現(xiàn)在我都沒有動(dòng)筆,免得廢話說了一大堆,除了能被當(dāng)成小說讀讀之外,對真正考慮是否要學(xué)習(xí)乃至使用C++/CLI的人未必有什么實(shí)際用處。


分享題目:引用C++/CLI中的棧對象總結(jié)
本文URL:http://www.5511xx.com/article/cohcoch.html