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

CG@CPPBLOG

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

(ZT)C++批判的批判

1,typedef不必要?

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

2,導(dǎo)入

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

3,引用是多余的?會(huì)被破壞

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

C99也加入了對(duì)引用的支持

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

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

5,多重繼承

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

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

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

7,virtual/override

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

8,虛擬類(lèi)型

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

9,束縛多態(tài)

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

10,訪問(wèn)控制

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

11,展開(kāi)對(duì)象

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

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

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

13,抗變與協(xié)變

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

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

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

15,垃圾收集

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

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

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


posted on 2008-06-15 22:14 cuigang 閱讀(178) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): 轉(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| 国产精品一国产精品k频道56| 欧美激情一区二区久久久| 免费成人性网站| 亚洲高清激情| 日韩午夜三级在线| 中文av字幕一区| 欧美一区三区三区高中清蜜桃| 久久精品视频在线观看| 欧美高清在线一区| 国产精品欧美一区二区三区奶水| 国产欧美91| 91久久精品日日躁夜夜躁欧美| 夜久久久久久| 久久午夜精品一区二区| 最新国产乱人伦偷精品免费网站| 一区二区三区视频在线播放| 欧美专区在线观看| 欧美日韩91| 精品动漫3d一区二区三区免费| 99精品黄色片免费大全| 午夜精品免费视频| 亚洲国产精品一区二区www在线| 国产精品99久久久久久人| 久久青青草原一区二区| 国产精品美女在线| 日韩写真视频在线观看| 久久久久久日产精品| 亚洲精品久久久久久久久久久| 午夜精品久久久久影视 | 久久亚洲综合网| 99re6这里只有精品视频在线观看| 午夜精品国产精品大乳美女| 欧美激情一区二区在线| 国产亚洲欧洲一区高清在线观看| 日韩一级精品| 免费国产一区二区| 亚洲自拍电影| 欧美午夜精品理论片a级大开眼界| 精品99一区二区| 欧美一区二区啪啪| 一区二区三区欧美在线观看| 欧美成黄导航| 亚洲福利视频网| 另类欧美日韩国产在线| 欧美一级理论性理论a| 国产精品红桃| 亚洲一区视频在线观看视频| 亚洲精品一区久久久久久| 蜜臀久久99精品久久久画质超高清 | 亚洲欧美日韩另类精品一区二区三区| 老**午夜毛片一区二区三区| 国产日产精品一区二区三区四区的观看方式 | 99精品视频网| 欧美日韩mv| 一区二区高清| 一本久久综合| 国产精品久久久久久久久久免费| 夜夜嗨av一区二区三区四季av| 亚洲福利视频在线| 欧美国产一区在线| 中日韩美女免费视频网址在线观看| 亚洲激情视频在线播放| 欧美美女bbbb| 亚洲欧美日韩在线观看a三区| 中文精品在线| 国产欧美一区二区三区视频| 久久精品二区亚洲w码| 欧美中文字幕视频| 精品成人a区在线观看| 欧美激情91| 欧美网站大全在线观看| 欧美亚洲免费电影| 久久精品盗摄| 亚洲精品中文字幕有码专区| 亚洲欧洲综合另类| 国产精品久久久久永久免费观看| 久久爱www久久做| 久久精品一区二区三区不卡| 亚洲国产精品久久精品怡红院| 亚洲国产精品尤物yw在线观看| 欧美连裤袜在线视频| 亚洲免费影院| 久久精品一二三| 一区二区三区四区五区在线| 亚洲午夜91| 亚洲福利在线观看| 亚洲视频在线观看视频| 伊人狠狠色j香婷婷综合| 最新国产成人在线观看| 国产日韩欧美精品| 亚洲国产婷婷综合在线精品 | 在线中文字幕一区| 国产自产在线视频一区| 亚洲国产一区在线| 国产视频久久网| 亚洲久久一区二区| 黄色成人在线网址| 一区二区国产在线观看| 精品成人a区在线观看| 一区二区日本视频| 日韩系列欧美系列| 国产乱子伦一区二区三区国色天香| 久久成人av少妇免费| 蜜桃av一区二区| 欧美专区日韩专区| 欧美激情片在线观看| 久久精品人人爽| 欧美丝袜一区二区| 欧美激情精品久久久久久| 国产农村妇女精品| 日韩一级片网址| 亚洲精品乱码久久久久久蜜桃91| 亚洲欧美日韩直播| 亚洲视频一区| 欧美精品高清视频| 欧美国产日本韩| 激情六月综合| 篠田优中文在线播放第一区| 亚洲自拍偷拍麻豆| 欧美日韩亚洲一区| 亚洲人成久久| 亚洲精品一区二区网址| 久久一区二区三区四区| 久久视频精品在线| 国产无遮挡一区二区三区毛片日本| 一区二区三区.www| 亚洲无人区一区| 欧美午夜精品理论片a级按摩| 亚洲精品一区在线| 中国女人久久久| 欧美日韩免费在线视频| 亚洲精品在线三区| 中国成人亚色综合网站| 欧美日韩亚洲一区二区三区在线观看 | 91久久精品一区二区别| 久久久爽爽爽美女图片| 久久综合精品一区| 在线免费观看成人网| 久久亚洲私人国产精品va| 你懂的视频欧美| 亚洲欧洲在线一区| 欧美激情精品久久久久久免费印度 | 噜噜噜在线观看免费视频日韩| 国内外成人免费激情在线视频网站 | 欧美一级二区| 久久尤物电影视频在线观看| 影音先锋亚洲一区| 噜噜噜噜噜久久久久久91| 亚洲国产精品悠悠久久琪琪 | 性欧美长视频| 国产视频在线观看一区| 久久精品在线免费观看| 欧美大秀在线观看| 野花国产精品入口| 艳女tv在线观看国产一区| 国产精品白丝jk黑袜喷水| 在线视频一区观看| 欧美在线一二三区| 好看的日韩av电影| 欧美成人国产va精品日本一级| 亚洲精品视频中文字幕| 性欧美1819sex性高清| 一区二区在线观看视频| 欧美精品福利在线| 亚洲欧美日韩国产精品| 免费中文日韩| 亚洲影视在线| 亚洲国产mv| 国产精品日产欧美久久久久| 久久久久国产一区二区三区| 亚洲欧洲一区二区在线播放| 欧美一区二区精品在线| 亚洲国产综合在线| 国产精品久久久久影院亚瑟| 鲁鲁狠狠狠7777一区二区| 亚洲午夜精品| 亚洲激情欧美| 噜噜噜91成人网| 小黄鸭精品密入口导航| 亚洲精品乱码久久久久久日本蜜臀 | 亚洲精品欧洲精品| 国产精品五区| 欧美日韩免费高清一区色橹橹| 久久精品免费电影| 亚洲色图自拍| 日韩视频―中文字幕| 欧美jjzz| 久久漫画官网| 欧美一区二区视频网站| 99re热精品| 亚洲第一黄网| 一区二区在线不卡| 国产一区久久| 国产日韩精品在线观看| 国产精品一区2区| 国产精品黄视频| 欧美色一级片| 欧美日韩中文精品| 欧美日韩国产亚洲一区|