自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

講述C++編程思想與策略

開發(fā) 后端
C++語言的成功主要得益于兩點(diǎn),從C到C++的轉(zhuǎn)換成本較低和它的高效性,他是具有靈活性和便于操作的程序之一,歡迎大家學(xué)習(xí)。

C++語言中的向上類型轉(zhuǎn)換,向下類型轉(zhuǎn)換,分別描述的是子類向基類和基類向子類的強(qiáng)制類型轉(zhuǎn)換。本文介紹它們使用中存的一些問題并附有源代碼,供大家參考!希望大家多多學(xué)習(xí)。

于是人們試圖直接在機(jī)器上建立問題空間的模型,面向?qū)ο?FONT>C++語言應(yīng)運(yùn)而生。面向?qū)ο笳Z言用對象來模擬現(xiàn)實(shí)世界中的事物,于是它也就跟現(xiàn)實(shí)世界的事物一樣,擁有了它需要的各種特性。

在這個(gè)大背景下,對象必然擁有自己的類別,于是引入了class的概念。對象要跟外界交互,它的接口便是類的函數(shù)。為了控制類的創(chuàng)建者和類的使用者之間的聯(lián)系,提高模塊的獨(dú)立性,必要的封裝是少不了的。實(shí)現(xiàn)代碼重用是編程界的重大問題。于是面向?qū)ο笳Z言使用組合來重用類的實(shí)現(xiàn),引入繼承來重用類的接口。而為了重用類的客戶代碼,多態(tài)就必不可少了。

談到對象,不免要談到它的創(chuàng)建和銷毀,以控制其生存期和存儲(chǔ)區(qū)。C++語言的設(shè)計(jì)目標(biāo)是效率***,它靈活多變但比較復(fù)雜的內(nèi)存管理機(jī)制便顯得理所當(dāng)然了。意外處理是實(shí)際項(xiàng)目中的大問題,標(biāo)準(zhǔn)C++語言在這方面做了大幅度的增強(qiáng),在語言上保證錯(cuò)誤將被處理并且可以恢復(fù)正常。

下面作者用很大的篇幅介紹了軟件分析和設(shè)計(jì)的過程?,F(xiàn)成的方法都是為了最復(fù)雜的情況設(shè)計(jì)的,我們只需采用一小部分,夠用就行。總的來說,作者提倡盡快讓程序運(yùn)行起來,通過簡要的分析,把最重要的部分和風(fēng)險(xiǎn)比較大的部分優(yōu)先考慮,盡早拿出一個(gè)測試版本。

當(dāng)然不是直接開始編碼,哪怕再簡單的分析也比直接開始編碼好得多。但不要過早陷入細(xì)節(jié),分析不可能一步到位,總有些因素要到編碼甚至測試階段才能發(fā)現(xiàn)。分析應(yīng)該做到什么程度呢,對于面向?qū)ο缶幊虂碚f,就是要搞清有哪些對象,它們各有什么接口,你可能需要更多的說明信息,但絕不能再少了。整個(gè)過程大概可以分衣五個(gè)步驟:

0.制訂計(jì)劃。直接開做也是一種計(jì)劃,但增加幾個(gè)里程碑往往更能激勵(lì)程序員,也多了慶祝的機(jī)會(huì)。這里用高度抽象的幾句話概括整個(gè)系統(tǒng)即可,以后覺得不夠準(zhǔn)確可以改。

1.做什么。即需求分析和系統(tǒng)規(guī)范說明。這些文檔通常要經(jīng)過討論,所以越精簡越好。作者建議使用用例,一個(gè)用例揭示了系統(tǒng)的一個(gè)功能,包括它在各種情況下的反應(yīng)。用例應(yīng)該盡量簡單,以免過早被一些細(xì)節(jié)所困擾。接下來,就該制定時(shí)間進(jìn)度表了,盡可能忠實(shí)地估算時(shí)間,乘以2再加上10%,基本上就可以很好地完成任務(wù)了。

2.怎么做。作者建議使用CRC卡,用一張3乘5的卡片,記錄一個(gè)類的名字、功能及其交互??ㄆ臻g有限,以免過早陷入細(xì)節(jié),它讓你盡快對系統(tǒng)的全貌有一個(gè)初步的認(rèn)識,也方便討論。你也可以使用UML。對象的設(shè)計(jì)一般分為五個(gè)階段:對象的發(fā)現(xiàn)、對象的組裝、對象的構(gòu)造、系統(tǒng)的擴(kuò)充和對象的重用。每個(gè)階段都可能出現(xiàn)新的類,所以不要奢望在這個(gè)階段就提出所有類。對象的開發(fā)原則是:一個(gè)類只解決一個(gè)問題,C++語言設(shè)計(jì)的主要任務(wù)就是實(shí)現(xiàn)需要的類,不要強(qiáng)求一步到位,盡早開始編程,盡量簡單。

3.創(chuàng)建內(nèi)核。只實(shí)現(xiàn)讓系統(tǒng)運(yùn)行起來的必要部分和風(fēng)險(xiǎn)比較大的部分,以盡早看到結(jié)果。

4.迭代用例。一次迭代增加一個(gè)用例,逐步完善。

5.進(jìn)化。盡善盡美,以備后用。

各種分析和設(shè)計(jì)方法中最突出的就是極限編程了,很多方法都受它影響,它最重要的兩條是先寫測試和結(jié)對編程。先寫測試能強(qiáng)迫程序員給出完整清晰的類接口,還能在每次建立系統(tǒng)時(shí)自動(dòng)測試。

從檢測的觀點(diǎn)來看,程序設(shè)計(jì)語言的進(jìn)步就是檢測的進(jìn)步,匯編語言只能檢查到語法錯(cuò)誤,過程設(shè)計(jì)語言還能檢測一些語義上的錯(cuò)誤,而面向?qū)ο缶幊陶Z言對主義的檢查更為嚴(yán)格。

盡管如此,有些錯(cuò)誤還是只有運(yùn)行的時(shí)候才能發(fā)現(xiàn),這就需要我們加入一些測試代碼來保證程序的正確性。結(jié)對編程就是讓一個(gè)人寫代碼,另一個(gè)人考慮全局,一旦編碼無法進(jìn)行下去,就可以交換過來,再不行還可以讓大家一起討論。

為了讓函數(shù)庫更易于使用,應(yīng)該明確地告訴用戶什么是他需要知道的,什么是可以略過的,并且禁止用戶使用不該使用的接口。為此,C++語言中引入了訪問權(quán)限控制指示符。為了保持語言的靈活性,又引入了友員的概念。

不想讓用戶知道的東西,根本就不應(yīng)該放在頭文件中。為此,我們可以把類的定義放在實(shí)現(xiàn)文件中,頭文件中另外創(chuàng)建一個(gè)類,它只包含一個(gè)對象的指針和公開的函數(shù)。這樣就可以把實(shí)現(xiàn)完全隱藏起來,具有更好的模塊獨(dú)立性。

【編輯推薦】

  1. 簡介學(xué)習(xí)C++總結(jié)之談
  2. C++庫函數(shù)進(jìn)行學(xué)習(xí)探索總結(jié)筆記
  3. C++類庫設(shè)計(jì)的基本構(gòu)思與方法
  4. C++語言真的還有市場價(jià)值?
  5. C++類庫設(shè)計(jì)的基本構(gòu)思與方法
責(zé)任編輯:chenqingxiang 來源: NET130
相關(guān)推薦

2010-01-12 10:40:22

C++程序員

2010-01-12 15:24:48

C++語言

2011-07-14 17:37:02

C++面向?qū)ο缶幊趟枷?/a>

2011-07-14 17:24:10

C++面向?qū)ο笏枷?/a>

2010-01-21 13:33:44

C++基類

2010-02-06 09:53:26

C++ void

2010-02-01 13:25:32

Python腳本

2010-01-11 10:28:51

C++編程

2009-06-25 18:13:10

2010-01-12 10:11:36

學(xué)習(xí)C++語言

2010-01-13 13:58:49

C++編譯模式

2010-02-04 15:51:07

C++迭代器

2010-02-05 10:08:55

C++名字空間

2010-01-12 17:55:03

C++程序

2009-07-20 09:53:43

Java混合編程

2010-02-01 14:07:12

C++多態(tài)性

2010-02-04 15:58:39

C++淺拷貝

2010-01-13 11:14:06

C++虛表

2011-05-30 15:29:32

C++

2015-04-29 15:29:16

C++ STL內(nèi)存配置關(guān)鍵源碼分析
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號