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