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