C++ 基礎語法 快速複習筆記(1)

最近要刷題,重溫一下C++基本的概念。。。233 html

 

1.概念:程序員

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

C++ 被認爲是一種中級語言,它綜合了高級語言和低級語言的特色。安全

 

 

 

和C的區別:

 

C++的不少基礎語法跟C差很少。編程語言

 

2. 函數默認值: 函數

C89標準的C語言不支持函數默認值,C++支持函數默認值,且須要遵循從右向左賦初始值。spa

 

3.函數重載:htm

C語言不存在函數重載,C++根據函數名參數個數參數類型判斷重載,屬於靜多態,必須同一做用域下才叫重載。 C不有是由於編譯器在編譯的時候只會給函數重命名,因此在編譯器看來重載函數們都是同樣的(編譯器不知道該調用哪一個)。C++的重載函數們生成的符號表是不同的(根據返回類型和參數類型數量等區分),因此能夠搞函數重載.對象

 

4.const:內存

C中的const叫只讀變量,只是沒法作左值的變量;C++中的const是真正的常量,但也有可能退化成c語言的常量,默認生成local符號。

 

5.分配內存:

a. malloc()和free()是C語言中動態申請內存和釋放內存的標準庫中的函數。而new和delete是C++運算符。new和delete底層其實仍是調用了malloc和free。

b. malloc時須要指定大小,還須要類型轉換。new時不須要指定大小由於它能夠從給出的類型判斷,而且還能夠同時賦初始值。(這也使得malloc不安全)

 

c. free只釋放空間,delete先調用析構函數再釋放空間(若是須要).同理,new也是先調用構造函數再申請空間。

d. 內存不足(開闢失敗)時處理方式不一樣。malloc失敗返回0,new失敗拋出bad_alloc異常。

e. new和malloc開闢內存的位置不一樣。malloc開闢在堆區,new開闢在自由存儲區域。

 

6.做用域:

多了個名字空間(namespace),所謂名字空間就是namespace,咱們定義一個名字空間就是定義一個新做用域。

 

7.布爾常量:

布爾常量共有兩個,它們都是標準的 C++ 關鍵字:

True 和 false,顧名思義就是對與錯。

(C裏面都是讓程序員本身定義)

 

8.Lambda 函數:

 

C++11 提供了對匿名函數的支持,稱爲 Lambda 函數(也叫 Lambda 表達式)。

 

Lambda 表達式把函數看做對象。Lambda 表達式能夠像對象同樣使用,好比能夠將它們賦給變量和做爲參數傳遞,還能夠像函數同樣對其求值。

 

Lambda 表達式本質上與函數聲明很是相似。

 

表達式例子:

[capture](parameters)->return-type{body}

 

[capture]:捕捉列表。捕捉列表老是出如今 lambda 表達式的開始處。事實上,[] 是 lambda 引出符。編譯器根據該引出符判斷接下來的代碼是不是 lambda 函數。捕捉列表可以捕捉上下文中的變量供 lambda 函數使用。

(parameters):參數列表。與普通函數的參數列表一致。若是不須要參數傳遞,則能夠連同括號 () 一塊兒省略。

mutable:mutable 修飾符。默認狀況下,lambda 函數老是一個 const 函數,mutable 能夠取消其常量性。在使用該修飾符時,參數列表不可省略(即便參數爲空)。

->return_type:返回類型。用追蹤返回類型形式聲明函數的返回類型。出於方便,不須要返回值的時候也能夠連同符號 -> 一塊兒省略。此外,在返回類型明確的狀況下,也能夠省略該部分,讓編譯器對返回類型進行推導。

{statement}:函數體。內容與普通函數同樣,不過除了可使用參數以外,還可使用全部捕獲的變量。 在 lambda 函數的定義式中,參數列表和返回類型都是可選部分,而捕捉列表和函數體均可能爲空。

 

例子以下:

 

[](int x, int y){ return x < y ; }

 

[](int x, int y) -> int { int z = x + y; return z + x; }

 

其實也不是很玄乎,匿名函數本質上就是個隨手用的函數,省去了定義的麻煩,直接用完就丟。也能夠做爲傳遞給某些應用,好比消息處理。

 

 

9.輸入輸出:

引用:https://www.runoob.com/cplusplus/cpp-basic-input-output.html

 

 

 

 

 

下一章講最重要的面對對象編程部分。

相關文章
相關標籤/搜索