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

春暖花開(kāi)
雪化了,花開(kāi)了,春天來(lái)了
posts - 149,comments - 125,trackbacks - 0

去同學(xué)那玩,看到這么一本書(shū)《C++沉思錄》。這本書(shū)很早聽(tīng)過(guò),但是沒(méi)有讀過(guò)。于是捧起書(shū)讀了幾章,感覺(jué)很是不錯(cuò)。其中第四章就是講“類(lèi)設(shè)計(jì)者的核查表”。雖然用c++有幾年,但是有一些東西還是需要銘記于心的。

 

類(lèi)設(shè)計(jì)者的核查表

一、        您的類(lèi)需要一個(gè)構(gòu)造函數(shù)么?

有些類(lèi)太簡(jiǎn)單,無(wú)需構(gòu)造函數(shù),但有些類(lèi)太復(fù)雜,他們需要構(gòu)造函數(shù)來(lái)隱藏它們的內(nèi)部工作方式。

二、           您的數(shù)據(jù)成員是私有的么?

通常使用公有的數(shù)據(jù)成員不是什么好事,因?yàn)轭?lèi)設(shè)計(jì)者無(wú)法控制何時(shí)訪問(wèn)這些成員。

三、           您的類(lèi)需要一個(gè)無(wú)參的構(gòu)造函數(shù)么?

如果一個(gè)類(lèi)已經(jīng)有了構(gòu)造函數(shù),想聲明該類(lèi)的對(duì)象可以不必顯示地初始化它們,則必須顯示地寫(xiě)一個(gè)無(wú)參的構(gòu)造函數(shù)。

四、           是不是每一個(gè)構(gòu)造函數(shù)初始化所有的數(shù)據(jù)成員?

構(gòu)造函數(shù)的用途就是用一種明確定義的狀態(tài)來(lái)設(shè)置對(duì)象。對(duì)象的狀態(tài)由對(duì)象的數(shù)據(jù)成員進(jìn)行反映。每個(gè)構(gòu)造函數(shù)都要負(fù)責(zé)為所有的數(shù)據(jù)成員設(shè)置經(jīng)過(guò)明確定義的值。

有時(shí)這種說(shuō)法也未必總是正確的。有時(shí),類(lèi)會(huì)有一些數(shù)據(jù)成員,它們只在它們的對(duì)象存在了一定時(shí)間之后才有意義。提這個(gè)問(wèn)題,只是激勵(lì)你進(jìn)行思考。

五、           類(lèi)需要構(gòu)造函數(shù)么?

不是所有有構(gòu)造函數(shù)的類(lèi)都需要構(gòu)造函數(shù)。如果深入考慮一個(gè)類(lèi)要做些什么,那么該類(lèi)是否需要析構(gòu)函數(shù)的問(wèn)題就十分明顯了。應(yīng)該問(wèn)一問(wèn)該類(lèi)是否分配了資源,而這些資源又不會(huì)有成員函數(shù)自動(dòng)釋放,這就足夠了。特別是那些構(gòu)造函數(shù)里包含了new表達(dá)式的類(lèi),通常要在析構(gòu)函數(shù)中加上相應(yīng)的delete表達(dá)式,所以需要一個(gè)虛析構(gòu)函數(shù)。

六、        類(lèi)需要一個(gè)虛析構(gòu)函數(shù)么?

有些類(lèi)需要虛析構(gòu)函數(shù)只是為了聲明他們的析構(gòu)函數(shù)是虛的。當(dāng)然,決不會(huì)用做基類(lèi)的類(lèi)是不需要虛析構(gòu)函數(shù)的:任何虛函數(shù)只在繼承的情況下才有用。

虛析構(gòu)函數(shù)通常是空的。

七、           你的類(lèi)需要復(fù)制構(gòu)造函數(shù)么?

很多時(shí)候答案都是“不”,但是有時(shí)候答案是“是”。關(guān)鍵在于復(fù)制該類(lèi)對(duì)象是否就相當(dāng)于復(fù)制其數(shù)據(jù)成員和基類(lèi)對(duì)象。如果并不相當(dāng),就需要復(fù)制構(gòu)造函數(shù)。

如果你的類(lèi)在構(gòu)造函數(shù)內(nèi)分配資源,則可能需要一個(gè)顯示的復(fù)制構(gòu)造函數(shù)來(lái)管理資源。有析構(gòu)函數(shù)的類(lèi)通常是析構(gòu)函數(shù)來(lái)釋放構(gòu)造函數(shù)分配的資源,這通常說(shuō)明需要一個(gè)復(fù)制構(gòu)造函數(shù)。(空的虛析構(gòu)函數(shù)除外)

如果不想用戶(hù)能夠復(fù)制該類(lèi)的對(duì)象,就聲明復(fù)制構(gòu)造函數(shù)為私有的。如果其他的成員不會(huì)使用這些成員函數(shù),聲明就足夠了,沒(méi)有必要定義它們。

八、           你的類(lèi)需要一個(gè)賦值操作么?

如果需要復(fù)制構(gòu)造函數(shù),同理多半也會(huì)需要一個(gè)賦值操作。

九、           你的賦值操作符能正確地將對(duì)象賦給對(duì)象本身么?

賦值總是用新值取代目標(biāo)對(duì)象的舊值。如果原對(duì)象和目標(biāo)對(duì)象是同一個(gè),而我們又奉行“先釋放舊值,再?gòu)?fù)制”的行事規(guī)程,那么就可能在還沒(méi)有實(shí)施復(fù)制之前就把原對(duì)象銷(xiāo)毀了。

十、           你的類(lèi)需要定義關(guān)系操作符么?

如果你的類(lèi)邏輯上支持相等操作,那么提供operate== operate!=可能會(huì)有好處。類(lèi)似的,如果你的類(lèi)的值有某種排序關(guān)系,那就可能會(huì)想提供余下的關(guān)系操作符。只要它們想創(chuàng)建你的類(lèi)型的有序集合,你就必須提供關(guān)系操作符。

十一  刪除數(shù)組時(shí)你記住了用delete[]么?

這個(gè)形式的存在,是C++希望在保持與C的兼容性的同時(shí)關(guān)注效率。C++要求用戶(hù)告知要被刪除的是不是數(shù)組。如果是,該實(shí)現(xiàn)就可能會(huì)提供另一個(gè)地方來(lái)存儲(chǔ)長(zhǎng)度,因?yàn)榕c數(shù)組所需的內(nèi)存量相比,這個(gè)常數(shù)的開(kāi)銷(xiāo)會(huì)小很多。

十二   記得在復(fù)制構(gòu)造函數(shù)和賦值操作符的參數(shù)類(lèi)型中加上了const么?

復(fù)制構(gòu)造函數(shù)應(yīng)該是像X::X(const X&)這樣,畢竟復(fù)制對(duì)象不會(huì)改變?cè)瓕?duì)象。實(shí)際上,由于綁定一個(gè)非const引用到一個(gè)臨時(shí)對(duì)象是非法的,使用X::X(X&)作為復(fù)制構(gòu)造函數(shù)不會(huì)允許復(fù)制任何特殊表達(dá)式的結(jié)果。同樣道理適用于賦值。

十三   如果函數(shù)有引用參數(shù),它們應(yīng)該是const引用么?

只有當(dāng)函數(shù)想改變參數(shù)時(shí),它才應(yīng)該有不用const聲明的引用參數(shù)。

 

   其中很多作者提到,提這些問(wèn)題并不是希望去尋求答案,只是希望能夠激勵(lì)你進(jìn)行思考。所以當(dāng)我們?cè)O(shè)計(jì)一個(gè)類(lèi)的時(shí)候,多思考一下,有沒(méi)有什么地方需要注意的,我們?cè)O(shè)計(jì)的類(lèi)將會(huì)更合理,更健壯一些。
posted on 2009-07-25 08:32 Sandy 閱讀(305) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): c++學(xué)習(xí)
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美一区二区观看视频| 久久久精品一区| 欧美日韩亚洲一区在线观看| 午夜精品网站| 欧美怡红院视频| 欧美一区二区精品久久911| 在线亚洲精品福利网址导航| 黑人操亚洲美女惩罚| 日韩午夜电影| 亚洲专区在线| 欧美一区二区三区久久精品茉莉花| 亚洲精品视频在线播放| 这里是久久伊人| 午夜精品久久久久久久男人的天堂| 亚洲综合另类| 久久精品视频免费| 美女精品在线观看| 亚洲高清免费视频| 一本到12不卡视频在线dvd| 国产精品99久久不卡二区| 亚洲一区二区三区在线观看视频| 欧美中文在线观看| 欧美国产日韩视频| 国产精品天美传媒入口| 在线日韩一区二区| 亚洲与欧洲av电影| 欧美成人黑人xx视频免费观看| 亚洲日本国产| 欧美在线一二三| 欧美日韩直播| 伊人久久久大香线蕉综合直播| 一区二区久久久久| 欧美91大片| 午夜在线观看欧美| 欧美三级视频在线播放| 在线观看亚洲视频啊啊啊啊| 亚洲视频狠狠| 亚洲国产片色| 欧美综合第一页| 欧美性猛交xxxx乱大交退制版 | 久久嫩草精品久久久精品| 欧美日本乱大交xxxxx| 国产专区综合网| 一区二区三区精品视频在线观看| 免费在线视频一区| 亚洲欧美日本国产有色| 欧美精品一区二区三区久久久竹菊 | 亚洲第一伊人| 欧美亚洲一区二区在线观看| 亚洲精品美女91| 蜜臀av一级做a爰片久久| 国产精品免费观看在线| 制服丝袜激情欧洲亚洲| 欧美激情偷拍| 嫩草成人www欧美| 亚洲黄色成人网| 欧美激情一级片一区二区| 久久国产婷婷国产香蕉| 国产精品一区二区你懂得| 亚洲手机视频| 99热精品在线观看| 亚洲一二三区精品| 在线观看亚洲精品| 久久亚洲综合色| 性色av香蕉一区二区| 国产精品乱码久久久久久| 中文在线一区| 一本色道久久88综合日韩精品| 欧美人与禽性xxxxx杂性| 99国产精品国产精品久久| 亚洲激情第一页| 欧美日韩国产专区| 亚洲午夜久久久久久久久电影网| 亚洲国产中文字幕在线观看| 欧美jizzhd精品欧美喷水 | 国内精品伊人久久久久av一坑| 性色av一区二区三区红粉影视| 一区二区高清视频在线观看| 国产精品高潮呻吟| 亚洲一区精品视频| 亚洲欧美激情诱惑| 国产一区二区三区成人欧美日韩在线观看 | 欧美三级在线视频| 亚洲一区三区在线观看| 亚洲国产精品悠悠久久琪琪| 久久免费午夜影院| 一区二区三区日韩| 亚洲一卡久久| 国产日韩一区二区三区| 欧美一级二区| 久久久久国产精品www| 亚洲日本va午夜在线电影| 日韩亚洲不卡在线| 国产日韩欧美精品一区| 美日韩精品视频| 欧美日韩精品免费观看视频完整| 欧美一级大片在线观看| 欧美xart系列高清| 欧美在线观看一二区| 欧美freesex8一10精品| 欧美一区二区网站| 欧美/亚洲一区| 欧美一区二区在线| 欧美粗暴jizz性欧美20| 亚洲欧美在线免费| 欧美高清视频一区二区| 欧美诱惑福利视频| 欧美日韩一本到| 牛牛影视久久网| 国产精品一区在线播放| 亚洲国产精品传媒在线观看 | 一个色综合导航| 久久久99国产精品免费| 亚洲尤物视频在线| 欧美成人在线免费观看| 国产欧美日韩亚洲一区二区三区| 国产午夜亚洲精品羞羞网站| 亚洲第一成人在线| 国产视频欧美| 中文日韩欧美| 日韩视频精品在线| 久久免费一区| 久久久综合免费视频| 国产精品盗摄一区二区三区| 亚洲激情网站免费观看| 亚洲电影观看| 久久电影一区| 久久不射网站| 国产精品一区亚洲| 亚洲一级黄色| 亚洲欧美在线一区| 欧美午夜电影完整版| 亚洲国产黄色| 亚洲老板91色精品久久| 麻豆国产va免费精品高清在线| 久久高清免费观看| 国产九九视频一区二区三区| 亚洲图片自拍偷拍| 亚洲欧美卡通另类91av| 欧美午夜宅男影院在线观看| 91久久精品久久国产性色也91| 在线观看国产成人av片| 久久久爽爽爽美女图片| 久久午夜色播影院免费高清| 国产视频一区免费看| 香蕉成人伊视频在线观看| 欧美一级电影久久| 国产精品一香蕉国产线看观看 | 久久在线视频在线| 欧美大片第1页| 亚洲精品乱码视频| 欧美另类高清视频在线| 99在线|亚洲一区二区| 亚洲欧美在线x视频| 国产女主播一区| 久久精品国产免费观看| 欧美成人精品一区二区| 亚洲精品裸体| 国产精品每日更新在线播放网址| 欧美一区二区久久久| 女生裸体视频一区二区三区| 亚洲精品美女在线| 欧美无乱码久久久免费午夜一区| 亚洲一区二区三区涩| 久久久www成人免费精品| 亚洲福利电影| 欧美体内she精视频| 西西人体一区二区| 亚洲大片精品永久免费| 亚洲综合色视频| 精品成人在线| 欧美日韩中文字幕日韩欧美| 欧美亚洲综合网| 亚洲啪啪91| 欧美在线短视频| 亚洲免费精彩视频| 国产精品亚洲美女av网站| 久久久午夜电影| 一区二区三区日韩精品视频| 美国成人毛片| 亚洲免费一在线| 亚洲第一福利在线观看| 欧美激情网友自拍| 亚洲影视在线播放| 亚洲另类黄色| 国产精品尤物| 久久一综合视频| 亚洲人成绝费网站色www| 亚洲欧美日韩国产一区二区| 国产亚洲成av人片在线观看桃| 久久影院午夜论| 亚洲一区二区三区久久| 久久免费视频这里只有精品| 亚洲国产婷婷香蕉久久久久久99| 国产精品一区二区a| 欧美高清视频一区| 久久精品女人的天堂av| 一区二区av| 欧美国产一区在线| 久久久久久网站|