C 11學習筆記二

2021-09-25 16:19:49 字數 1219 閱讀 2814

用處:基類擁有眾多建構函式而派生類只有一些成員函式(資料不多)時,可以直接繼承基類建構函式而不必重寫。

用法:class base

;class derive:base

;注意:如果派生類有多個基類時有可能導致衝突,解決辦法是派生類顯示定義該建構函式

用處:一些建構函式需要呼叫相同的/類似的**段時,可將該**段抽離出來寫。

用法:class info

;注意:建構函式不能同時使用委派建構函式和初始化成員列表

應用:模板建構函式。

class

info

public

:info

(deque<

int>

&d):

info

(d.begin()

,d.end()

);info

(vector<

short

>

&v):

info

(v.begin()

,v.end()

);}

class

info

//移動拷貝

}

c++11在std中新增了move函式將物件左值轉化為右值:v.push_back(move(物件))

注意:使用noexcept防止構造過程中異常而產生野指標。

應用:禁止拷貝只允許移動構造可構造出乙個唯一型資源

c++11 將explicit 範圍擴充套件到自定義型別中

class a{};

class b

}初始化的幾種方式:

pod,普通型別,分為兩類,平凡的和標準布局的

可以用類模板is_pod::value進行判斷

非受限聯合體是c++11對聯合體的擴充套件,現在在union中也可以使用自定義型別

用法:

union test

//~test()

};

不過由於string是非pod,所以必須改造,加上上面注釋的**

用法:return_type operator""_varchar(const char * col,size_t n); //void operator""_w(const char *str,size_t n)

using uint = unsigned int

c 11學習筆記

c 98的 std auto ptr已經被徹底遺棄了,取而代之的是unique ptr shared ptr與weak ptr。大部分時候我們自己手動申請記憶體方式記憶體都是沒有問題的,問題是如果程式很大了之後,乙個複雜的物件,多次拷貝的代價非常高,很多地方都會使用到,只存在乙份拷貝顯然是最好的,這...

C 11新特性學習筆記(二)

c 11引入了lambda 匿名函式 這樣就可以在乙個函式只需呼叫一次的地方使用了,類似內聯函式。c 11 的 lambda 表示式規範如下 capture params mutable exception attribute ret 1 capture params ret 2 capture p...

C 11學習筆記 Type Support

其實主要還是對c 的std庫的學習吧,雖然用的不少但是對c 的全貌還不太了解。主要包括3個部分 基本型別 rtti 萃取技術 traits size t 用的太多了,不說了。ptrdiff t 乙個有符號的型別,通常用來表示兩個指標相減的結果,是乙個機器相關的型別。和size t不同的是,size ...