優(yōu)秀的面向?qū)ο蟮脑O(shè)計(jì)語言——C++語言
其實(shí)C語言的語法與C++語言非常相似,有些變化引起的錯(cuò)誤卻很嚴(yán)重,本文就對(duì)于大多數(shù)用戶頭疼的C++語言進(jìn)行詳細(xì)的剖析與介紹,希望能給大家?guī)碛杏玫男畔ⅰ?/P>
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特性。
Bjarne Stroustrup(C++的設(shè)計(jì)者)對(duì)C++的設(shè)計(jì)和演化的描述C++的設(shè)計(jì)和演化(The Design and Evolution of C++)
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è)市場(chǎng)[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++語言的國(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ā)布之前,一直被作為過渡標(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++ Design Aims)
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ì)目標(biāo)可以小結(jié)如下:
對(duì)于要解決實(shí)際問題的程序員而言,C++使程序設(shè)計(jì)變得更有樂趣;
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)題之下。
【編輯推薦】