對(duì)C++程序設(shè)計(jì)原理說(shuō)明
C++語(yǔ)言在計(jì)算機(jī)科學(xué)的各個(gè)領(lǐng)域中都得大為應(yīng)用,C++語(yǔ)言完美地體現(xiàn)了面向?qū)ο蟮母鞣N特性,開(kāi)發(fā)人員只想把C++程序設(shè)計(jì)設(shè)計(jì)的更加完美,這也是繼C語(yǔ)言后一個(gè)大的飛躍。
C++程序設(shè)計(jì)語(yǔ)言是由來(lái)自AT&T Bell Laboratories的Bjarne Stroustrup(即本文作者)設(shè)計(jì)和實(shí)現(xiàn)的,它兼具Simula語(yǔ)言在組織與設(shè)計(jì)方面的特性以及適用于系統(tǒng)程序設(shè)計(jì)的C語(yǔ)言設(shè)施。C++最初的版本被稱(chēng)作“帶類(lèi)的C(C with classes)”[Stroustrup,1980],在1980年被第一次投入使用;
當(dāng)時(shí)它只支持系統(tǒng)程序設(shè)計(jì)(§3)和數(shù)據(jù)抽象技術(shù)(§4.1)。支持面向?qū)ο蟪绦蛟O(shè)計(jì)的語(yǔ)言設(shè)施在1983年被加入C++;之后,面向?qū)ο笤O(shè)計(jì)方法和面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù)就逐漸進(jìn)入了C++領(lǐng)域。在1985年,C++第一次投入商業(yè)市場(chǎng)[Stroustrup,1986][Stroustrup,1986b]。在1987至1989年間,支持范型程序設(shè)計(jì)的語(yǔ)言設(shè)施也被加進(jìn)了C++[Ellis,1990][Stroustrup,1991]。
隨著若干獨(dú)立開(kāi)發(fā)的C++實(shí)現(xiàn)產(chǎn)品的出現(xiàn)和廣泛應(yīng)用,正式的C++標(biāo)準(zhǔn)化工作在1990年啟動(dòng)。標(biāo)準(zhǔn)化工作由ANSI(American National Standard Institute)以及后來(lái)加入的ISO(International Standards Organization)負(fù)責(zé)。
1998年正式發(fā)布了C++語(yǔ)言的國(guó)際標(biāo)準(zhǔn)[C++,1998]。在標(biāo)準(zhǔn)化工作進(jìn)展期間,標(biāo)準(zhǔn)委員會(huì)充當(dāng)了一個(gè)重要的角色,其發(fā)布的C++標(biāo)準(zhǔn)之草案在正式標(biāo)準(zhǔn)發(fā)布之前,一直被作為過(guò)渡標(biāo)準(zhǔn)而存在。
而作為標(biāo)準(zhǔn)委員會(huì)中的積極分子,我是C++進(jìn)一步發(fā)展工作中的主要參與者。與以前的C++語(yǔ)言版本相比,標(biāo)準(zhǔn)C++更接近我理想中的那個(gè)C++語(yǔ)言了。關(guān)于C++的設(shè)計(jì)和演化,在[Stroustrup,1994]、[Stroustrup,1996]和[Stroustrup,1997b]中有詳細(xì)的敘述。至于標(biāo)準(zhǔn)化工作末期產(chǎn)生的C++語(yǔ)言定義,在[Stroustrup,1997]有詳細(xì)敘述。
C++的設(shè)計(jì)目標(biāo),就是要讓C++既具有適合于系統(tǒng)程序設(shè)計(jì)的C語(yǔ)言所具有的可適應(yīng)性和高效性,又能在其程序組織結(jié)構(gòu)方面具有像Simula那樣的語(yǔ)言設(shè)施(Simula所支持的這種程序組織結(jié)構(gòu)通常被稱(chēng)為面向?qū)ο蟪绦蛟O(shè)計(jì)風(fēng)格)。
在設(shè)計(jì)的時(shí)候,還做了很大的努力,使得引借自Simula的高層次的程序設(shè)計(jì)技術(shù)能夠應(yīng)用于系統(tǒng)程序設(shè)計(jì)之中。這即是說(shuō),C++所提供的抽象機(jī)制能夠被應(yīng)用于那些對(duì)效率和可適應(yīng)性具有極高要求的程序設(shè)計(jì)任務(wù)之中。
C++程序設(shè)計(jì)是一門(mén)通用目的的程序設(shè)計(jì)語(yǔ)言,它:
◆是一個(gè)更好的C;
◆支持?jǐn)?shù)據(jù)抽象;
◆支持面向?qū)ο蟪绦蛟O(shè)計(jì);
◆支持范型程序設(shè)計(jì)。
對(duì)范型C++程序設(shè)計(jì)的支持在C++設(shè)計(jì)的后期才被作為一個(gè)明確、獨(dú)立的目標(biāo)來(lái)實(shí)現(xiàn)。而在C++演化過(guò)程的大部分時(shí)間里,我一直把范型程序設(shè)計(jì)以及支持它的語(yǔ)言特性劃歸在“數(shù)據(jù)抽象”的大標(biāo)題之下。
【編輯推薦】