第十八章 - 探討C++新標準

0、本章內容:

移動語義和右值引用。

Lambda表達式。

包裝器模板function。

可變參數模板。

1、複習前面介紹過的C++11功能:

1.1 新類型

1.2 統一的初始化

1.3 聲明

1.4 智能指針

1.5 異常規範方面的修改

1.6 作用域內枚舉

1.7 對類的修改

1.8 模板和STL方面的修改

1.9 右值引用

2、移動語義和右值引用:

2.1 爲什麼需要移動語義

2.2 一個移動示例

2.3 移動構造函數解析

移動構造參數不能是const,因爲移動改變了源對象。

2.4 賦值

移動賦值參數不能是const,因爲移動改變了源對象。

2.5 強制移動

move()函數。

沒有移動則用複製,沒有複製則報錯。

3、新的類功能:

3.1 特殊的成員函數

移動和複製,其一定義,另一則非默認。

3.2 默認的方法和禁用的方法

default創建默認方法,delete禁用方法。

default只能用於特殊成員函數。

3.3 委託構造函數

3.4 繼承構造函數

使得所有重載版本都可用。

3.5 管理虛方法:override和final

參數列表不同是隱藏,參數列表相同是覆蓋。

隱藏調用聲明類型,覆蓋調用實際類型,派生類找不到就去基類找。

並非關鍵字,可用作常規標識符。

4、Lambda函數:

4.1 比較函數指針、函數符和Lambda函數

generate隨機生成,count_if計算總數。

僅當Lambda表達式完全由一條返回語句組成時,自動類型推斷才管用。

4.2 爲何會使用Lambda

5、包裝器:

5.1 包裝器function及模板的低效性

5.2 修復問題

5.3 其他方式

6、可變參數模板:

6.1 模板和函數參數包

6.2 展開參數包

6.3 在可變參數模板函數中使用遞歸

7、C++11新增的其他功能:

7.1 並行編程

7.2 新增的庫

7.3 低級編程

7.4 雜項

8、語言變化:

8.1 Boost項目

8.2 TR1

8.3 使用Boost

9、接下來的任務:

null。

10、總結:

null。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章