青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

為何C++中的類成員函數沒有采用類似Java中的“全虛”設計

關于程序設計語言本身的設計有許多有趣的話題,比如,為何C++中的類成員函數沒有采用類似Java中的“全虛”設計?

1) 從語言本身設計上看,
效率定然是c++當初設計時考慮的重點之一,舉個例子,為了節省不必要的VTable開銷,ATL用template技術靜態轉換來模擬動態綁定以支持COM特性的實現;和C的兼容,就VTable角度看,問題不大,因為后者可以用函數指針數組來模擬;

2) 再從大多數應用中常見的類繼承體系上看,
除了整個繼承體系所統一開放出來的接口集(也就是由虛函數所組成),在繼承體系的每個層面另外會有大量的其他輔助成員函數(其數量通常比虛函數多的多),這些成員函數完全沒必要設計成虛函數;

3) 從其他語言看,
即使較新的虛擬機語言C#(Java算是較老的虛擬機語言),反而定義了比C++更為嚴格更為顯式的成員方法實現或覆蓋或重載或新建的規則;這是非常重要的對C++以及Java設計思想的反思。

4) 從語言的適用場合看,
我們現在的討論,絕大多數情況下帶有一個非常重要的默認前提,那就是在用戶態模式下使用C++,如果放寬這個約束,在內核模式下使用C++,那情況又完全不同了。
引用下面這個文檔的觀點,http://www.microsoft.com/china/whdc/driver/kernel/KMcode.mspx
首先,用戶態下非常廉價幾乎不用考慮的資源,在內核中是非常昂貴的,比如內核堆棧一般就3個page;

在內核不能分頁(paging)時必須保證將被執行的所有代碼和數據必須有效的駐留在物理內存中,如果這時需要多駐留幾張虛表以及虛表指針那還是顯得非常昂貴的,同時編譯器為虛函數,模板等生成代碼的方式,讓開發人員很難確定要執行一個函數所需要的所有代碼的所在位置,因此也無法直接控制用于安置這些代碼的節(個人認為可能通過progma segment/datasegment/codesegment對于代碼和數據進行集中控制),因此在需要這些代碼時,可能已經被page out了;

所有涉及類層次結構,模板,異常等等這樣的一些語言結構在內核態中都可能是不安全的,最好是把類的使用限定為POD類,回到我們的主題虛函數,也就是說內核態下類設計中沒有虛函數。

posted on 2010-12-13 08:57 flagman 閱讀(1701) 評論(1)  編輯 收藏 引用 所屬分類: 設計 DesignC++思考和學習 Thinking & Learning

評論

# re: 為何C++中的類成員函數沒有采用類似Java中的“全虛”設計 2010-12-13 10:41 空明流轉

模板可以認為是安全的。  回復  更多評論   

<2011年4月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

導航

統計

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲一区二区在| 久久久久网址| 欧美激情一区二区在线| 亚洲一区二区三区涩| 亚洲欧洲精品一区二区三区| 亚洲永久字幕| 一区二区三区av| 亚洲毛片视频| 亚洲三级电影在线观看| 亚洲国产清纯| 日韩亚洲国产欧美| 国产麻豆视频精品| 国产日韩一区二区| 国产九九精品| 狠狠干综合网| 最新成人av在线| 一本久久综合亚洲鲁鲁五月天| 国产麻豆综合| 狠狠色伊人亚洲综合网站色| 国产视频精品免费播放| 国产麻豆精品在线观看| 国产亚洲欧美日韩精品| 伊人天天综合| 国产精品一区二区在线观看网站| 国产精品一区二区久久久| 国产精品日韩在线观看| 国产亚洲一区二区三区在线观看| 国产综合欧美在线看| 亚洲国产片色| 亚洲国产精品va在线看黑人| 亚洲国产精品一区二区第四页av| 最新日韩精品| 亚洲午夜性刺激影院| 久久精品日韩欧美| 亚洲国产精品一区二区三区 | 欧美三级欧美一级| 国产精品久久久久久久7电影| 国产精品一区二区久久精品| 激情五月综合色婷婷一区二区| 亚洲欧洲日韩在线| 亚洲欧美视频| 欧美国产日产韩国视频| 亚洲午夜精品网| 久久亚洲国产精品一区二区 | 欧美二区在线观看| 国产一区二区电影在线观看| 激情视频一区| 国产一区二区三区四区三区四 | 一本色道久久综合亚洲精品按摩| 午夜精品一区二区三区四区| 毛片一区二区| 亚洲永久在线观看| 欧美激情亚洲| 国产精品国产三级国产普通话99 | 欧美自拍偷拍午夜视频| 欧美成人激情视频| 国产一区二区三区四区老人| 亚洲一区二区高清| 91久久精品一区| 欧美尤物一区| 国产精品成人aaaaa网站| 在线日本欧美| 久久精品国产亚洲5555| 一区二区三区久久精品| 欧美高清视频免费观看| 在线看无码的免费网站| 久久精品视频在线免费观看| 一区二区三区www| 欧美激情综合在线| 亚洲经典一区| 亚洲高清资源| 久久亚洲影音av资源网| 国产午夜精品理论片a级大结局| 亚洲一级电影| 免费日韩av| 欧美成人免费大片| 久久狠狠婷婷| 国产一区二区日韩精品欧美精品| 亚洲一区亚洲| 亚洲视频网站在线观看| 欧美网站在线观看| 亚洲一区二区三区精品在线| 日韩视频亚洲视频| 麻豆av一区二区三区| 国内不卡一区二区三区| 久久综合网络一区二区| 欧美一级大片在线观看| 欧美日韩一区二区三区在线视频| 日韩视频免费看| 欧美日韩和欧美的一区二区| 欧美精品免费播放| 性欧美大战久久久久久久久| 久久精品123| 亚洲免费高清| 欧美一级黄色录像| 亚洲精品午夜精品| 亚洲欧美日韩综合aⅴ视频| 精品成人一区二区三区四区| 亚洲图片在线观看| 午夜在线a亚洲v天堂网2018| 亚洲黄一区二区| 亚洲一区精品电影| 亚洲第一精品久久忘忧草社区| 亚洲精品少妇| 在线观看日韩| 午夜精品久久久| 一区二区免费看| 久久裸体艺术| 欧美专区亚洲专区| 欧美日韩亚洲一区二区三区在线| 久久人人97超碰精品888| 欧美日韩一区二区视频在线观看| 久久欧美肥婆一二区| 国产精品福利影院| 亚洲精品中文字幕女同| 亚洲黄一区二区| 久久九九热免费视频| 亚洲一区二区三区四区在线观看| 久久亚洲一区二区三区四区| 久久精品视频在线看| 国产精品美女黄网| 日韩一级黄色av| 99伊人成综合| 欧美激情视频一区二区三区在线播放 | 欧美风情在线| 国产一区二区三区四区hd| 一区二区欧美在线观看| 亚洲毛片在线看| 欧美大片专区| 亚洲欧洲日产国产综合网| 樱花yy私人影院亚洲| 欧美伊人久久| 久久人91精品久久久久久不卡| 国产精品久久久久久久app| 亚洲精品在线观看免费| 一本色道久久99精品综合| 欧美精品国产| 亚洲精品视频免费| 一区二区三区四区五区视频| 欧美交受高潮1| 亚洲伦理在线免费看| 一区二区精品在线观看| 欧美日韩在线视频一区| 中文无字幕一区二区三区| 亚洲欧美精品在线| 国产日韩欧美三级| 久久久久国产精品厨房| 女女同性女同一区二区三区91| 在线免费观看日本欧美| 免费不卡在线观看| 99re亚洲国产精品| 欧美一级久久久久久久大片| 国产美女精品免费电影| 久久精品论坛| 亚洲日本欧美在线| 亚洲欧美综合另类中字| 狠狠爱综合网| 欧美日韩成人综合在线一区二区| 亚洲精品一区在线观看| 性欧美18~19sex高清播放| 国产精品视频最多的网站| 久久综合九色综合网站| 在线观看日韩一区| 欧美激情亚洲| 亚洲嫩草精品久久| 欧美成人蜜桃| 欧美一级视频精品观看| 国产精品一区二区你懂得| 久久久久久成人| 99精品黄色片免费大全| 久久精品二区亚洲w码| 亚洲裸体俱乐部裸体舞表演av| 欧美午夜不卡在线观看免费 | 欧美日韩一二三区| 亚洲欧美日韩综合国产aⅴ| 嫩模写真一区二区三区三州| 亚洲精品在线看| 国产区在线观看成人精品| 免费在线观看成人av| 亚洲天堂网在线观看| 欧美电影电视剧在线观看| 亚洲一区二区三区视频| 亚洲福利一区| 国产欧美日韩免费| 欧美激情国产高清| 欧美在线观看一区二区| 最近看过的日韩成人| 久久九九久精品国产免费直播 | 欧美日韩国产丝袜另类| 久久福利影视| 亚洲网站啪啪| 亚洲精品极品| 久久一本综合频道| 午夜精品久久久久久99热软件| 亚洲精品老司机| 一区二区自拍| 国产亚洲人成a一在线v站| 国产精品久久激情| 欧美日韩国产在线一区| 美日韩精品视频|