僅個人學習記錄,毫無參考性? 望知悉!;萍ā!
壹:Conversion function「轉(zhuǎn)換函數(shù)2」2.00:10
語法:
? ? ? ? 轉(zhuǎn)換函數(shù)的返回類型就是名稱爽丹,編譯器規(guī)定不寫返回類型,編譯器自動添加
? ? ? ? 沒有參數(shù)
? ? ? ? 不會改變class「類」的值辛蚊,通常加const
注:任何一個class粤蝎,只要認為轉(zhuǎn)換合理,都可以寫轉(zhuǎn)換函數(shù)
non explicit one argument「實參」 ctor3.0:10
explicit「明確的」:僅用于構造函數(shù)前袋马,避免編譯器將之用于轉(zhuǎn)換初澎,產(chǎn)生二義性「模板存在極少量應用」
標準庫栗子:3.13:48
貳:class所產(chǎn)生的對象可能會像兩種東西
①像指針「智能指針」? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ②像函數(shù)「仿函數(shù)」
pointer like classes「關于智能指針」
第一大類4.0:0
語法:必然有一個普通的指針「px」
? ? ? ? ? ? 必然有? -> 和? *? 的操作符重載
? ? ? ? ? ? 和一個可以接受普通指針的構造函數(shù)「將普通指針,包裝成智能指針」
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 注: -> 符號作用的對象完成后可以繼續(xù)作用
第二大類「關于迭代器」4.12:17
迭代器昨為特殊的智能指針虑凛,再于需要特殊的操作符重載? ? ++和 --
function like classes 「所謂仿函數(shù)」5.00:07
當某個東西可以接受()這個操作符碑宴,就可以將之稱為函數(shù)或者像函數(shù)的
注:()小括號又名函數(shù)調(diào)用操作符
語法:class中有對()進行操作符重載的,用意就是變成function「仿函數(shù)」
標準庫實例:5.07:44
叁:namespace? 6.00:00
語法:關鍵字namespace? + 名字 ++{? 需要分隔開的文件? }
注:用于將部分文件區(qū)分開桑谍,避免函數(shù)或類的名稱沖突
肆:template「模板」
注: 「泛化」 指在用戶使用時延柠,再指定類型
? ? ? ? ? 僅僅在模板的<>中typename和class可以通用,由于早期沒有typename關鍵字,臨時借用了class
? ? ? ? 模板在寫的時候會編譯一次,當使用「指定類型」時需要再次編譯
①class template「類模板」7.0.12
②function template「函數(shù)模板」8.0.12
③member template「成員函數(shù)」9.0.12
①class template「類模板」7.0.12
語法:關鍵字tempalate + <關鍵字typename「或class」 + 名字「標記」>
寫一個類時婚脱,將類的某部分提取出來,將來由用戶自己增热,使用時在指定類型的,就是類模板
②function template「函數(shù)模板」8.0.12
語法:關鍵字tempalate + <關鍵字typename「或class」 + 名字「標記」>
注:實參推導「函數(shù)模板不必指明其類型胧辽,編譯器會對調(diào)用的參數(shù)進行推導」
③member template「成員函數(shù)」9.0.12
峻仇??邑商?
伍:specialization「模板特化」
注:特化對某些獨特類型础浮,進行「特殊」的設計10.00:40
注:上面框表示泛化,下面框表示特化
? ? ? ? 淺綠色表示臨時對象
partial specialization「模板偏特化」
①個數(shù)的偏? ? ? ? ? ? ? ? ? ? ? ? ? ? ②范圍的偏
①個數(shù)的偏
②范圍的偏
template template parameter「模板模板參數(shù)」?影锈??
注:模板的參數(shù)也是一個模板
陸:c++標準庫13.00:00
注:需要熟練掌握鸭廷,試著將所有算法測試一遍
? ? ? ? 以及推薦書籍
柒:三個主題14.00:00
①variadic templates「數(shù)量不定的模板參數(shù)」14.00:19
②
③
①variadic templates「數(shù)量不定的模板參數(shù)」14.00:19
注:將參數(shù)分為兩組枣抱,一個「正常寫」 + 一包「typename? +? ...」
? ? ? ? c++11支持的