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

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

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

 

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

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

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

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

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

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

如果一個(gè)類已經(jīng)有了構(gòu)造函數(shù),想聲明該類的對(duì)象可以不必顯示地初始化它們,則必須顯示地寫一個(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í),類會(huì)有一些數(shù)據(jù)成員,它們只在它們的對(duì)象存在了一定時(shí)間之后才有意義。提這個(gè)問題,只是激勵(lì)你進(jìn)行思考。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

十二   記得在復(fù)制構(gòu)造函數(shù)和賦值操作符的參數(shù)類型中加上了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ù)。

 

   其中很多作者提到,提這些問題并不是希望去尋求答案,只是希望能夠激勵(lì)你進(jìn)行思考。所以當(dāng)我們?cè)O(shè)計(jì)一個(gè)類的時(shí)候,多思考一下,有沒有什么地方需要注意的,我們?cè)O(shè)計(jì)的類將會(huì)更合理,更健壯一些。
posted on 2009-07-25 08:32 Sandy 閱讀(314) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 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>
            亚洲国产婷婷| 久久精品成人欧美大片古装| 亚洲永久精品国产| 亚洲激情午夜| 亚洲欧美激情四射在线日| 91久久精品一区| 久久久99精品免费观看不卡| 亚洲影视中文字幕| 欧美高清视频一区| 美乳少妇欧美精品| 国内精品视频在线播放| 亚洲制服欧美中文字幕中文字幕| 亚洲精品九九| 久久亚洲欧美| 久久久精品欧美丰满| 国产精品久久亚洲7777| 亚洲乱码视频| 亚洲免费观看高清完整版在线观看熊| 久久亚洲欧美国产精品乐播| 久久精品人人做人人综合 | 亚洲先锋成人| 亚洲网站在线| 欧美日韩国产bt| 亚洲精品在线免费观看视频| 日韩午夜av| 欧美日韩爆操| 99国产精品视频免费观看| 亚洲精品影院在线观看| 欧美大片免费久久精品三p | 久久精品日韩| 国产午夜久久| 久久国产一区二区| 麻豆久久婷婷| 亚洲精品少妇网址| 欧美日本三区| 亚洲淫片在线视频| 久久精品综合一区| 亚洲大片在线| 免费av成人在线| 亚洲第一区在线观看| 欧美成人免费在线| 夜夜嗨av一区二区三区网页| 亚洲欧美激情一区二区| 国产精品综合不卡av| 久久精品盗摄| 欧美激情精品| 亚洲一区美女视频在线观看免费| 国产精品高潮呻吟久久av无限| 亚洲一区三区视频在线观看| 久久色在线观看| 亚洲日韩成人| 欧美婷婷久久| 久久成人免费电影| 欧美激情视频一区二区三区不卡| 日韩视频一区| 国产婷婷色综合av蜜臀av| 久久夜色精品国产欧美乱极品| 亚洲日韩欧美视频| 亚洲淫片在线视频| 伊人伊人伊人久久| 欧美日韩在线电影| 欧美专区在线观看| 亚洲精品视频在线| 久久久av毛片精品| 99这里有精品| 国产午夜精品全部视频播放| 欧美va日韩va| 午夜久久99| 亚洲欧洲视频在线| 久久精品99国产精品日本| 日韩视频在线观看| 国产一区二区三区免费观看| 欧美成人激情视频| 欧美一区二区在线免费播放| 亚洲欧洲一区二区天堂久久 | 亚洲午夜在线| 亚洲高清色综合| 久久精品国产2020观看福利| 一区二区三区 在线观看视频| 国产亚洲aⅴaaaaaa毛片| 欧美日韩国产高清视频| 久久精品国产久精国产一老狼| 日韩午夜在线| 亚洲电影观看| 久久蜜桃香蕉精品一区二区三区| 在线一区二区三区四区| 在线观看国产日韩| 国产亚洲在线观看| 国产精品一区二区久久| 欧美久久电影| 蜜桃av噜噜一区二区三区| 久久国产天堂福利天堂| 亚洲一区二区三区激情| 99re6热只有精品免费观看 | 国产亚洲成av人在线观看导航| 欧美人成网站| 嫩草影视亚洲| 狼人天天伊人久久| 久久精品国产久精国产一老狼| 亚洲欧美日韩综合国产aⅴ| 亚洲免费av电影| 亚洲精品视频在线| 亚洲精品乱码久久久久久按摩观| 欧美国产1区2区| 免费国产一区二区| 欧美成人免费在线观看| 久久夜色精品亚洲噜噜国产mv| 欧美中文字幕在线| 欧美制服第一页| 欧美一级视频免费在线观看| 亚洲一区欧美一区| 亚洲综合精品自拍| 午夜精品久久久久久久99水蜜桃| 亚洲一区二区精品视频| 亚洲愉拍自拍另类高清精品| 亚洲视频中文| 亚洲欧美日韩精品久久亚洲区| 亚洲天堂网在线观看| 亚洲视频一二区| 亚洲欧美一区二区三区在线| 先锋影音网一区二区| 久久精品国产亚洲aⅴ| 久久米奇亚洲| 欧美韩日亚洲| 亚洲久久视频| 亚洲视频一区二区| 亚洲欧美激情四射在线日 | 久久最新视频| 欧美黄色一区二区| 亚洲日本中文字幕| 亚洲欧美国产高清va在线播| 欧美中文字幕第一页| 久久九九精品| 欧美激情一级片一区二区| 欧美日韩久久精品| 国产精品一区二区在线| 一区在线影院| 亚洲精选在线观看| 亚洲免费在线| 免费日韩成人| 99re成人精品视频| 午夜免费日韩视频| 欧美大片免费| 国产精品影音先锋| 亚洲欧美日韩一区二区三区在线| 欧美在线一区二区三区| 欧美国产欧美亚洲国产日韩mv天天看完整 | 国产亚洲电影| 亚洲第一色在线| 亚洲自拍偷拍福利| 欧美a级片网站| 亚洲无限av看| 欧美成人一区二免费视频软件| 国产精品theporn| 在线国产亚洲欧美| 亚洲自拍偷拍麻豆| 亚洲福利视频二区| 校园春色综合网| 欧美日韩喷水| 亚洲高清在线精品| 羞羞色国产精品| 亚洲精品午夜| 久久久福利视频| 国产精品亚洲综合一区在线观看| 亚洲欧洲在线免费| 久久久久综合网| 亚洲图片在线| 欧美大片免费观看| 在线激情影院一区| 欧美在线视频播放| 日韩亚洲欧美中文三级| 久久综合久久综合久久| 亚洲最新在线视频| 欧美第一黄色网| 亚洲第一精品夜夜躁人人爽| 欧美一区免费视频| 一区二区三区精品视频| 欧美激情小视频| 亚洲国产合集| 美女视频黄免费的久久| 欧美一区不卡| 国产欧美精品xxxx另类| 亚洲综合国产精品| 一本色道久久综合亚洲精品高清| 欧美国产精品劲爆| 亚洲国产精品一区在线观看不卡| 久久五月激情| 久久激情综合网| 国外成人在线视频| 久久精品盗摄| 欧美一区二粉嫩精品国产一线天| 国产精品免费网站在线观看| 亚洲视频在线视频| 一本久久知道综合久久| 欧美日韩成人在线| 一区二区三区高清在线| 亚洲激情一区| 欧美日韩国产在线看| 一本一道久久综合狠狠老精东影业| 欧美国产在线视频|