top of page

C++的特色

和C語言相比,C++引入了更多的特性,包括:陳述性宣告,類似函式的強制轉型,new/delete運算子,布林類型,參考類型,預設參數,函式重載,命名空間,類別(包括所有和類別相關的特性,如繼承、成員函式、虛擬函式、抽象類別和建構子),運算子重載,模板,::運算子,異常處理和執行時期識別。

和普遍認為的相反,C++不是第一個正式引入const關鍵字的語言。80年代早期,Bjarne Stroustrup和Dennis Retchie討論之後提供了在C語言中readonly/writeonly的實作機制,並在帶類別的C中取得了一定經驗。關鍵字const正式引入C語言是在ANSI C89。這早於第一個C++國際標準近十年,但此時const已被C++實作普遍採用。

C++在某些案例中(見下「與C不相容之處」),進行比C還要多的類型檢查。

以「//」起始作為註解起源自C的前身BCPL,而後被重新引入到C++。

C++的一些特性,C不久之後也採用了,包括在for迴圈的括弧中宣告,C++風格的註解(使用//符號,和inline,雖然C99定義的inline關鍵字與C++的定義不相容。不過,C99也引入了不存在於C++的特性,如:可變參數巨集,和以陣列作為參數的較佳處理;某些C++編譯器可能實作若干特性,以作為擴展,但其餘部分並不符合現存的C++特性)

一個常見的混淆其實只是一個微妙的術語問題:由於它的演化來自C,在C++中的術語物件和C語言一樣是意味著記憶體區域,而不是類別的實體,在其它絕大多數的物件導向語言也是如此。舉例來說,在C和C++中,語句int i;定義一個int型別的物件,這就是變數的值i將在指派時,所存入的記憶體區域。

bottom of page