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

春暖花開(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>
            免费观看成人| 久久精品女人的天堂av| 欧美激情一二三区| 夜夜嗨av一区二区三区免费区| 亚洲激情电影在线| 欧美伦理91| 午夜精品福利电影| 久久av最新网址| 亚洲精一区二区三区| 亚洲精品网站在线播放gif| 欧美日韩伦理在线免费| 欧美在线999| 美女脱光内衣内裤视频久久影院| 日韩手机在线导航| 午夜精品视频网站| 亚洲国产精品激情在线观看| 亚洲精品久久在线| 国产日韩亚洲欧美精品| 亚洲福利在线视频| 国产精品视频一区二区高潮| 久久永久免费| 国产精品久久国产精品99gif| 久久精品国产91精品亚洲| 免费不卡在线视频| 欧美一区二区三区视频免费播放 | 欧美/亚洲一区| 欧美日韩影院| 免费在线一区二区| 国产精品国产精品国产专区不蜜| 国内久久婷婷综合| 精品福利电影| 亚洲国产第一页| 国产精品亚洲аv天堂网 | 亚洲免费观看在线观看| 欧美一区二区三区在| 亚洲日本中文字幕区| 欧美在线免费观看视频| 亚洲一区二区三区激情| 麻豆精品在线视频| 久久久91精品国产一区二区三区 | 久久久久国内| 久久se精品一区精品二区| 欧美日韩精品一区二区三区| 欧美11—12娇小xxxx| 国产精品免费在线| 日韩午夜中文字幕| 亚洲精品国产系列| 久久亚洲高清| 久热国产精品视频| 国产日韩欧美夫妻视频在线观看| 99国产精品视频免费观看| 亚洲国产裸拍裸体视频在线观看乱了 | 久久免费国产精品| 国产欧美日本一区二区三区| 夜夜爽www精品| 一区二区三区国产| 欧美精彩视频一区二区三区| 欧美国产视频一区二区| 在线观看欧美精品| 欧美在线视频不卡| 久久综合一区二区| 一色屋精品视频在线观看网站| 欧美一区中文字幕| 久久精品亚洲一区| 国内成人精品视频| 久久久天天操| 亚洲国产黄色片| 亚洲精品视频在线观看网站| 欧美成年人视频网站| 亚洲国产成人91精品| 日韩视频在线观看国产| 欧美日韩国产黄| 在线视频日韩| 久久成人在线| 国一区二区在线观看| 久久久久久欧美| 亚洲高清免费在线| 中国成人亚色综合网站| 国产精品激情av在线播放| 亚洲一区在线免费| 蜜桃av噜噜一区| 亚洲欧洲一区二区在线观看 | 午夜一级在线看亚洲| 久久久中精品2020中文| 亚洲黄色在线观看| 欧美视频成人| 欧美主播一区二区三区| 亚洲高清视频一区| 亚洲欧美国产毛片在线| 好吊妞这里只有精品| 欧美激情1区| 亚洲字幕在线观看| 亚洲无毛电影| 麻豆91精品91久久久的内涵| 国产综合视频| 免费视频一区| 一区二区三区四区国产精品| 欧美在线观看视频| 1769国产精品| 欧美午夜精品伦理| 久久久在线视频| 在线午夜精品| 亚洲成人资源| 久久国产夜色精品鲁鲁99| 亚洲日本成人在线观看| 国产麻豆午夜三级精品| 欧美大胆a视频| 欧美在线视频日韩| 夜夜躁日日躁狠狠久久88av| 久久夜色精品一区| 欧美一级欧美一级在线播放| 亚洲国产欧美在线人成| 国产伦一区二区三区色一情| 欧美成人午夜影院| 久久精品成人欧美大片古装| 夜久久久久久| 亚洲国产精品一区二区三区| 久久久久一区| 久久成人免费电影| 亚洲欧美成人网| 一本久久a久久免费精品不卡| 狠狠色综合色区| 国产欧美精品在线观看| 欧美午夜一区二区| 欧美日韩精品在线观看| 美女视频黄a大片欧美| 久久精品首页| 欧美在线免费观看视频| 亚洲欧美日本日韩| 亚洲一区在线视频| 中文国产一区| 亚洲图片自拍偷拍| 日韩小视频在线观看| 亚洲人成毛片在线播放女女| 欧美高清不卡| 欧美激情中文字幕一区二区| 久久综合九色综合久99| 久久久高清一区二区三区| 久久国产精品久久久久久久久久 | 翔田千里一区二区| 午夜精品福利一区二区三区av | 欧美激情小视频| 亚洲韩国精品一区| 91久久精品国产91久久| 亚洲精品一区在线观看| 日韩西西人体444www| 中文在线不卡视频| 亚洲在线观看| 欧美专区在线观看| 久久蜜桃精品| 欧美电影在线观看完整版| 欧美日韩国产成人高清视频| 欧美丝袜一区二区| 国产欧美一区在线| 激情婷婷亚洲| 99国内精品| 午夜精品www| 另类激情亚洲| 亚洲精品男同| 午夜精品亚洲一区二区三区嫩草| 欧美亚洲三区| 欧美成人午夜激情在线| 国产精品啊啊啊| 国产在线成人| 美脚丝袜一区二区三区在线观看 | 亚洲另类在线一区| 一区二区三区日韩| 欧美中文字幕| 亚洲国产精品成人一区二区| 99re6热在线精品视频播放速度| 亚洲美女在线一区| 欧美亚洲系列| 欧美国产视频在线| 国产精品午夜在线观看| 永久免费视频成人| 亚洲视频一区在线观看| 久久蜜桃av一区精品变态类天堂| 亚洲高清视频一区| 亚洲性图久久| 免费黄网站欧美| 国产精品伦理| 亚洲韩国青草视频| 亚洲综合不卡| 亚洲黄色成人网| 香蕉国产精品偷在线观看不卡| 欧美电影在线观看| 国模吧视频一区| 亚洲无线一线二线三线区别av| 卡一卡二国产精品| 亚洲一区三区视频在线观看| 免费久久精品视频| 国产一区二区三区高清| 9国产精品视频| 欧美激情a∨在线视频播放| 亚洲专区国产精品| 欧美日韩精品免费看| 亚洲国产毛片完整版 | 久久精品一级爱片| 亚洲影院一区| 国产精品超碰97尤物18|