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