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

CG@CPPBLOG

/*=========================================*/
隨筆 - 76, 文章 - 39, 評論 - 137, 引用 - 0
數(shù)據(jù)加載中……

(ZT)C++批判的批判

1,typedef不必要?

a,typedef提供了一層間接,面向?qū)ο笳Z言中,接口掩蓋了運(yùn)行時不同具體類型間的差別,而typedef掩蓋了編譯時不同類型間的差別,卻又不喪失類型安全性
b,一般語言只能返回“值”,而typedef提供了返回“類型”的能力,這是模板元編程不可或缺的機(jī)制,除非模板元編程眼下也是不必要的

2,導(dǎo)入

在不同地點(diǎn)分別對#include,private成員放在頭文件中,inline函數(shù)也放在頭文件中進(jìn)行了批判,實(shí)際上原因只有一個:C++不是 平臺,它沒有二進(jìn)制標(biāo)準(zhǔn),它編譯后成為本地代碼,喪失了一切類型信息;只有解決了這個問題,才能解決跟分發(fā)重用導(dǎo)入相關(guān)的各種問題

3,引用是多余的?會被破壞

a,資源釋放問題引用比指針更明確,即提供原始對象一方負(fù)責(zé)釋放資源,而一旦用指針做接口參數(shù),就需要約定誰來釋放資源
b,空引用在well-formed的程序中是不存在的,因?yàn)楫a(chǎn)生它的唯一方式是提領(lǐng)空指針,而提領(lǐng)空指針是未定義的行為,程序很快就會出錯,而不是像被破壞的指針一樣,有些運(yùn)算出錯,有些不出,有時出錯,有時不出

C99也加入了對引用的支持

4,直接重復(fù)繼承

C++缺乏Eiffel擁有的“直接重復(fù)繼承”機(jī)制,但假如有的話,語義是什么呢?沒看過Eiffel,不懂

5,多重繼承

論述較為精辟,對多重處理的繼承是C++的軟肋,Java禁止了多重實(shí)現(xiàn)繼承,但提供的“單實(shí)現(xiàn)繼承+多接口繼承+內(nèi)部類”卻又缺乏靈活性和直觀性

6,內(nèi)部類破壞面向?qū)ο螅科茐膹?fù)用性

有失公允,除非面向?qū)ο笈懦饷嫦蚪涌冢瑥?fù)用僅止源代碼復(fù)用;1,內(nèi)部類提供更好的封裝性;2,內(nèi)部類經(jīng)過簡單包裝后可以以可執(zhí)行代碼的形式提供面向接口的復(fù)用,一個例子是“List Collections.unmodifiedList(List)”,可用內(nèi)部類優(yōu)雅的實(shí)現(xiàn)(不知實(shí)際實(shí)現(xiàn)如何)

7,virtual/override

C++與C#的做法給了基類作者巨大的責(zé)任,而這些本應(yīng)子類作者承擔(dān);包括C++里的虛基類,子類的變化迫使父類作出改動

8,虛擬類型

文中說C++只提供了參數(shù)化類,沒提供虛擬類型,可從所舉的虛擬類型的例子來看,似乎用前文所鄙視的typedef即可完成,不知是否如此.

9,束縛多態(tài)

在C++里一般稱為模板參數(shù)約束,正考慮加入下版標(biāo)準(zhǔn);但如果只是用在書中所舉例子,模板參數(shù)約束為實(shí)現(xiàn)某個接口,那么用接口做為參數(shù)就可以了,為什么還要泛型呢?泛型表達(dá)了一種Concept,泛參檢查也應(yīng)該為Concept Check,而不是Type Check

10,訪問控制

Eiffel對子類訪問權(quán)限不加限制只能算是一個特性,未必是優(yōu)點(diǎn);基于對復(fù)用的兩種不同理解和側(cè)重,C++和Eiffel選擇了對待子類的兩種不同態(tài)度;對C++私有繼承批評時所舉的例子并不恰當(dāng),造成問題的根源是強(qiáng)制轉(zhuǎn)型,而不是私有繼承

11,展開對象

對“.”和“->”的批評太孤立了,實(shí)際上“->”是可重載的操作符,提供了一層間接,利用這層間接可以做很多事情:資源管理,以包容的方式獲得繼承的便利(自動“擁有”被包容對象的方法)等等;Eiffel提供了“展開對象”,不知具體語義如何

12,直接重復(fù)繼承

翻到這里才看到了Eiffel中直接重復(fù)繼承的一種用處:原來是為了在子類中調(diào)用父類同名方法;隨著Precursor加入語言,這種用法也可以被拋棄了

13,抗變與協(xié)變

返回值協(xié)變似乎沒多大問題,參數(shù)抗變似乎也沒多大問題,問題在于參數(shù)協(xié)變;Eiffel提供了Current和like來解決,C++只能期待受束泛型了

14,強(qiáng)制針對接口編程

作者認(rèn)為父類中的public成員在子類中重定義時改為protected或private會帶來協(xié)變問題,其實(shí)只要重定義函數(shù)的語義正確,也沒什 么;而且這種變化會帶來另外一種效果:強(qiáng)制針對接口編程;因?yàn)榇藭r你的客戶程序員只能通過父類來引用你的子類對象才能訪問重定義的成員

15,垃圾收集

還是那些話題,還是那些論調(diào),還是對內(nèi)存外的資源管理避而不談;難道不能“析構(gòu)函數(shù)+棧對象+堆對象垃圾收集”?C++只不過缺省缺少“堆對象垃圾收集”,智能指針還能撐一會,Java和Eiffel則缺少“棧對象+析構(gòu)函數(shù)”

16,契約式設(shè)計(jì)與CORBA IDL

作者認(rèn)為CORBA IDL不支持契約式設(shè)計(jì)是一個缺陷,可我從來不敢在我的DCOM,RMI,.Net Remoting組件中使用斷言,包括最初的socket server;這可是暴露在網(wǎng)絡(luò)環(huán)境中啊,違反前置條件是要拋異常的啊;WebService稍好一點(diǎn),明確定義了異常處理,有中間件支持


posted on 2008-06-15 22:14 cuigang 閱讀(180) 評論(0)  編輯 收藏 引用 所屬分類: 轉(zhuǎn)帖

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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| 一本色道久久88亚洲综合88| 亚洲免费观看在线观看| 日韩一级精品| 亚洲性xxxx| 久久精品夜色噜噜亚洲a∨| 久久深夜福利| 欧美日韩精品一区二区| 国产日产亚洲精品系列| 国产亚洲毛片| 国产精品久在线观看| 国产一区二区久久精品| 久久人人爽人人爽| 欧美日韩国产经典色站一区二区三区| 国产精品免费网站| 亚洲国产日韩欧美| 午夜久久一区| 亚洲高清av| 亚洲精品一区二区在线| 亚洲欧美日韩在线一区| 欧美高清视频www夜色资源网| 亚洲福利视频二区| 亚洲免费综合| 亚洲第一页中文字幕| 亚洲男人的天堂在线| 欧美阿v一级看视频| 国产精品自拍三区| 亚洲校园激情| 亚洲第一毛片| 久久伊伊香蕉| 国产视频精品xxxx| 亚洲一级二级| 亚洲欧洲一区二区三区在线观看| 小处雏高清一区二区三区 | 亚洲人成亚洲人成在线观看图片 | 久久精品一区二区三区四区| 亚洲福利视频专区| 亚洲欧美中文另类| 欧美日韩伦理在线| 亚洲国产精品日韩| 久久人体大胆视频| 午夜精品免费在线| 美女黄网久久| 日韩一级裸体免费视频| 久久婷婷激情| 精品96久久久久久中文字幕无| 亚洲综合精品| 一区二区三区回区在观看免费视频| 玖玖玖国产精品| 精东粉嫩av免费一区二区三区| 欧美一级在线亚洲天堂| 91久久在线观看| 免费国产自线拍一欧美视频| 伊人久久噜噜噜躁狠狠躁| 久久国产精品毛片| 亚洲欧美日韩在线播放| 国产美女精品视频免费观看| 香蕉久久夜色精品国产使用方法| 在线视频你懂得一区二区三区| 亚洲麻豆国产自偷在线| 欧美电影资源| 一区二区日韩伦理片| 999亚洲国产精| 国产精品都在这里| 欧美在线视频免费播放| 欧美一激情一区二区三区| 国产精品日韩专区| 久久久久九九九九| 久久黄色网页| 香蕉av777xxx色综合一区| 亚洲先锋成人| 国产视频亚洲精品| 久久久久久综合| 麻豆精品在线视频| 一区二区欧美在线观看| 亚洲欧美卡通另类91av | 国产欧美一区二区三区在线老狼 | 国产精品中文字幕在线观看| 午夜精品在线看| 久久精品人人| 日韩午夜av| 亚洲午夜高清视频| 激情视频一区二区三区| 欧美国产亚洲视频| 亚洲三级毛片| 国产精品午夜电影| 蜜桃久久精品乱码一区二区| 欧美黄色小视频| 欧美一级午夜免费电影| 狂野欧美一区| 亚洲欧美日韩在线高清直播| 久久九九久久九九| 欧美成人一区二区三区片免费| 亚洲精品一级| 欧美不卡视频一区| 国产精品草草| 欧美成人午夜剧场免费观看| 欧美涩涩网站| 欧美顶级少妇做爰| 国产精品久久久久久久久久三级| 麻豆视频一区二区| 国产精品美腿一区在线看 | 国产视频观看一区| 亚洲高清在线观看| 国产欧美一区二区精品秋霞影院| 亚洲福利视频在线| 国产一区二区三区免费不卡| 亚洲精品在线视频观看| 亚洲第一精品夜夜躁人人躁| 国产精品视频网址| 国产日韩专区| 日韩一区二区精品在线观看| 午夜精品一区二区三区四区 | 国产精品九色蝌蚪自拍| 欧美二区在线| 国产一区二区三区不卡在线观看| 99国产精品一区| 亚洲精品字幕| 免费的成人av| 国产精品你懂的在线| 亚洲黄色视屏| 久久一区免费| 麻豆av一区二区三区久久| 国产欧美日韩综合一区在线播放| 亚洲精品一区二| 亚洲日本一区二区三区| 久久久久久亚洲精品中文字幕| 亚洲欧美一级二级三级| 欧美日韩精品一区二区天天拍小说 | 欧美sm极限捆绑bd| 免费观看成人| ●精品国产综合乱码久久久久| 性欧美暴力猛交69hd| 欧美一级视频一区二区| 国产精品福利片| 亚洲视频 欧洲视频| 欧美体内谢she精2性欧美| 日韩视频在线你懂得| 99热精品在线| 欧美体内she精视频| 亚洲电影免费观看高清完整版在线 | 91久久精品一区二区三区| 亚洲国产成人精品久久| 在线观看国产一区二区| 久久久精品性| 欧美成人免费全部| 91久久夜色精品国产九色| 欧美大片免费观看| av成人动漫| 欧美在线播放一区| 国产一区二区三区四区五区美女| 欧美一级专区| 美乳少妇欧美精品| 亚洲精品视频二区| 国产精品久久久久久久第一福利| 亚洲免费视频一区二区| 久久久人人人| 日韩天堂av| 国产片一区二区| 久久综合影视| 一本久久综合| 另类尿喷潮videofree| 日韩午夜免费| 国产婷婷一区二区| 蜜桃av一区二区| 亚洲尤物视频在线| 韩国三级电影久久久久久| 男同欧美伦乱| 亚洲欧美日韩精品| 亚洲电影在线播放| 欧美亚洲综合网| 亚洲日本视频| 精品成人a区在线观看| 欧美视频中文在线看| 久久亚洲春色中文字幕| 乱码第一页成人| 亚洲乱码国产乱码精品精98午夜| 性久久久久久| 亚洲人屁股眼子交8| 午夜精品久久久久久| 欧美综合77777色婷婷| 99riav国产精品| 欧美成人久久| 欧美一区二区视频免费观看 | 欧美日韩美女在线| 久久九九热re6这里有精品| 99视频有精品| 亚洲国产欧美日韩| 久久夜色精品国产欧美乱极品 | 亚洲一区二区三区中文字幕| 亚洲第一视频| 一区精品久久| 红桃视频一区| 国产亚洲精品久|