我們編寫的程序由兩個(gè)主要方面組成
1 算法的集合就是將指令組織成程序來(lái)解決某個(gè)特定的問(wèn)題
2 數(shù)據(jù)的集合算法在這些數(shù)據(jù)上操作以提供問(wèn)題的解決方案
縱觀短暫的計(jì)算機(jī)發(fā)展史這兩個(gè)主要方面算法和數(shù)據(jù)一直保持不變發(fā)展演化的
是它們之間的關(guān)系就是所謂的程序設(shè)計(jì)方法programming paradigm
在過(guò)程化程序設(shè)計(jì)方法procedural programming 中一個(gè)問(wèn)題可直接由一組算法來(lái)建
立模型例如公共圖書館的資料借閱/登記check out/check in 系統(tǒng)是由一系列過(guò)程表現(xiàn)
出來(lái)的其中兩個(gè)主要的過(guò)程是資料的借閱和登記這些數(shù)據(jù)被獨(dú)立存儲(chǔ)起來(lái)我們既可以
在某個(gè)全局位置上訪問(wèn)這些數(shù)據(jù)或者把數(shù)據(jù)傳遞給過(guò)程以便它能夠訪問(wèn)這些數(shù)據(jù)Fortran
C 和 Pascal 是三種著名的過(guò)程語(yǔ)言C++也支持過(guò)程化程序設(shè)計(jì)單獨(dú)的過(guò)程如check_in()
check_out() over_due() fine()等等都被稱為函數(shù)第三篇將集中討論C++對(duì)過(guò)程化程序
設(shè)計(jì)方法的支持尤其將重點(diǎn)討論函數(shù)函數(shù)模板和通用算法
在20 世紀(jì)70 年代程序設(shè)計(jì)的焦點(diǎn)從過(guò)程化程序設(shè)計(jì)方法轉(zhuǎn)移到了抽象數(shù)據(jù)類型
abstract data type 簡(jiǎn)寫為ADT 的程序設(shè)計(jì)上現(xiàn)在通常稱之為基于對(duì)象(object based
的程序設(shè)計(jì)在基于對(duì)象的程序設(shè)計(jì)方法中我們通過(guò)一組數(shù)據(jù)抽象來(lái)建立問(wèn)題的模型在
C++中我們把這些抽象稱為類class 例如在這種方法下圖書館資料借閱登記系統(tǒng)就
由類的對(duì)象實(shí)例比如書借閱者還書時(shí)間罰款等之間的相互作用表現(xiàn)出來(lái)以此表
示出圖書館的抽象概念與每個(gè)類相關(guān)的算法被稱為該類的公有接口public interface 數(shù)
據(jù)以私有形式被存儲(chǔ)在每個(gè)對(duì)象中對(duì)數(shù)據(jù)的訪問(wèn)應(yīng)與一般的程序代碼隔離開(kāi)來(lái)CLU Ada
和Modula-2 是三種支持抽象數(shù)據(jù)類型的程序設(shè)計(jì)語(yǔ)言第四篇將說(shuō)明和討論C++對(duì)抽象數(shù)據(jù)
類型程序設(shè)計(jì)方法的支持
面向?qū)ο蟮某绦蛟O(shè)計(jì)方法通過(guò)繼承inheritance 機(jī)制和動(dòng)態(tài)綁定dynamic binding 機(jī)
制擴(kuò)展了抽象數(shù)據(jù)類型繼承機(jī)制是對(duì)現(xiàn)有實(shí)現(xiàn)代碼的重用動(dòng)態(tài)綁定是指對(duì)現(xiàn)有的公有接
口的重用以前獨(dú)立的類型現(xiàn)在有了類型/子類型的特定關(guān)系一本書一盒錄像帶一段錄
音甚至孩子的寵物盡管它們有各自的借閱/登記方式但都可以成為圖書館的收藏資料
共享的公有接口和私有的數(shù)據(jù)都放在一個(gè)抽象類圖書館資料LibraryMaterial 中每個(gè)特
殊的圖書館資料類都從LibraryMaterial 抽象類繼承共享的行為它們只需要提供與自身行為相
關(guān)的算法和數(shù)據(jù)Simula Smalltalk 和Java 是三種支持面向?qū)ο蟪绦蛟O(shè)計(jì)方法的著名語(yǔ)言
第五篇將集中討論C++對(duì)面向?qū)ο蟪绦蛟O(shè)計(jì)方法的支持
C++是一種支持多種程序設(shè)計(jì)方法的語(yǔ)言雖然我們主要把它當(dāng)作面向?qū)ο蟮恼Z(yǔ)言但
實(shí)際上它也提供對(duì)過(guò)程化的和基于對(duì)象的程序設(shè)計(jì)方法的支持這樣做的好處是對(duì)每個(gè)問(wèn)題
都能夠提供最合適的解決方案事實(shí)上沒(méi)有一種程序設(shè)計(jì)方法能夠
標(biāo)簽:
c++從入門到精通.pdf電子書 第二版
上傳時(shí)間:
2019-01-30
上傳用戶:jizhi111