1. 程式人生 > >1、【C++基礎】簡介

1、【C++基礎】簡介

void指針 通用 if...else 重載 全局變量 但是 區別 模板庫 stl

C++ 簡介

C++ 是一種靜態類型的、編譯式的、通用的、大小寫敏感的、不規則的編程語言,支持過程化編程、面向對象編程和泛型編程。

C++ 被認為是一種中級語言,它綜合了高級語言和低級語言的特點。

C++ 是由 Bjarne Stroustrup 於 1979 年在新澤西州美利山貝爾實驗室開始設計開發的。C++ 進一步擴充和完善了 C 語言,最初命名為帶類的C,後來在 1983 年更名為 C++。

C++ 是 C 的一個超集,事實上,任何合法的 C 程序都是合法的 C++ 程序。

註意:使用靜態類型的編程語言是在編譯時執行類型檢查,而不是在運行時執行類型檢查。

面向對象程序設計

C++ 完全支持面向對象的程序設計,包括面向對象開發的四大特性:

  • 封裝
  • 抽象
  • 繼承
  • 多態

標準庫

標準的 C++ 由三個重要部分組成:

  • 核心語言,提供了所有構件塊,包括變量、數據類型和常量,等等。
  • C++ 標準庫,提供了大量的函數,用於操作文件、字符串等。
  • 標準模板庫(STL),提供了大量的方法,用於操作數據結構等。

C和C++的聯系

C++ 是在C語言的基礎上擴展的,C語言的很多語法在 C++ 中依然廣泛使用,例如:

C++ 仍然使用 charshortintlongfloatdouble 等基本數據類型;

C++ 仍然使用 if...elsewhileforswitchbreak 等分支或循環結構;

C++ 仍然使用 +-*/%++--<<>> 等運算符;

C++ 仍然使用 typedef#defineenumstruct 等;

C++ 仍然使用C語言中經典的指針(Pointer),並且使用範圍有增無減,甚至不可或缺。

C++與C不兼容之處

C的大部分代碼在C++上都能應用,而C++的代碼在C上不能應用。(記住是大部分,不是所有)

C++是C語言的超集,雖然C++兼容C,但是C++中也有與C語言中不兼容的地方。

1、變量聲明的位置

  C中變量聲明和代碼是分開的,必須在函數開始處聲明;

  C++中,變量可以在任意處聲明,只要保證先聲名後使用的原則就可以。

2、struct結構體方面

  用struct定義變量

  struct mystruct{ int i;float x};

  在c中聲明struct變量要這麽寫:struct mystruct a;

  在C++中前面不用加struct:mystruct a;

  一種兼容的用法是:

  typedef struct _mystruct{int i;float x;} mystruct;

  然後用mystruct 定義變量。枚舉型(enum),聯合體類型(union)也是同樣。

  在C++中,struct結構體支持成員函數的定義,C中不行。另外要註意的是,C++中成員函數的默認訪問說明符為public,這一點和類不同,類的默認訪問說明符為private.

3、bool類型值

  C++中有bool(或boolean類型);C中可沒有這樣的bool類型,均為數值類型!需要註意的是真為非零(如:1,52,-5,-2等),假的數值為0。

4、 賦值

C語言中的賦值只有一中即:=;

C++中除了使用=外,還可以使用()。例如:int x(5);就等於: int x=5;我想這種寫法是給C++中對象初始化時初始化屬性是對象時使用的,那麽對於基本類型也可以使用了。

5、函數

C語言中函數沒有參數默認值,在C++中函數有參數默認值的概念,註意參數默認值與函數重載的區別。

C語言中函數的定義又兩種形式,經典形式和標準形式,C++中只支持標準形式。

標準形式:int string(int x,float y){......}

經典形式: int string(x,y)int x;float y;{......}

C++的函數必須先聲名原型或定義才能使用,因為C++是強數據類型語言,在C語言中,未聲名和定義函數之前調用函數是允許的.

6、運算符&和關鍵字const

&運算符最基本的含義是取地址,C和C++中都支持這一語法。但在C++中&還可以表示引用。有了引用的概念後函數調用可以作為左值。例如:

int &rtux()......rtux()=5;

以上表達式在C++中完全正確,但在C語言中是非法的。

const關鍵字要註意一點不同的就是在C++的類函數中,函數可以聲名是可以用const,表示這個函數沒有改變類中的任何屬性。如:void unchange()const;C不能有這樣的生明。

7、extern說明符

在C語言的某些版本中,可以在程序中多次使用一個全局變量而無需使用extern說明符。但在C++中除定義全局變量外,在其他模塊使用應先用extern生明。

8、void指針

在C語言中void指針可以賦給任何類型的指針,但在C++中,卻不行,但可以先進行強制數據類型轉換,在賦值。

1、【C++基礎】簡介