conversion function,轉(zhuǎn)換函數(shù)
A轉(zhuǎn)換成T 有兩種方式
1、A操作符重載 operator T() const()
2、T的構(gòu)造函數(shù) T(const A&) ? or ?T(const A&,int len=0) //注意后面那個(gè)值one-argument
? ? 注意explicit關(guān)鍵字,禁止編譯器默認(rèn)執(zhí)行
pointer-like ?classes ?智能指針 ?
1、[*]和[->] 操作符重載
2、shared_ptr ? 引用計(jì)數(shù)
function-like classes
namespace
1、命名空間,可以有效的隔絕同名的情況
2、注意作用域
3、用法 ::
Template?注意關(guān)鍵字有區(qū)別
1、類(lèi)模板,類(lèi)操作的元素不同 ,但是邏輯相同,都可以用類(lèi)模板實(shí)現(xiàn)?
用法:template<typename T>
例子:complex<double> c1(2.5,1.5);
? ? ? ? ? ?complex c1(2,1);
2、函數(shù)模板,和類(lèi)模板同樣的場(chǎng)景,
用法:template<class T>,會(huì)用到T的成員函數(shù)
3、成員模板,模擬向上構(gòu)造


多態(tài)的更深入應(yīng)用,將多種類(lèi)型的數(shù)據(jù)用其父類(lèi)來(lái)組織(橫向)

多態(tài)的更深入應(yīng)用,智能指針(縱向)