任何時(shí)候重新定義了基類中的一個(gè)重載函數(shù),那么在新類中的所有其他版本將被自動(dòng)隱藏。修改返回值和參數(shù)同樣會(huì)隱藏基類其他版本的函數(shù),如果該函數(shù)是虛函數(shù),不能在新類中修改返回值。
2. 自動(dòng)類型轉(zhuǎn)換方法(該轉(zhuǎn)換只發(fā)生在函數(shù)調(diào)用期間)
1) 利用轉(zhuǎn)型構(gòu)造函數(shù)
2) 利用運(yùn)算符轉(zhuǎn)換
如果不想自動(dòng)轉(zhuǎn)換,可將轉(zhuǎn)型構(gòu)造函數(shù)利用explicit關(guān)鍵字設(shè)為顯式調(diào)用


















It's supposed to help with your complexion.
運(yùn)算符轉(zhuǎn)換之前沒(méi)用到過(guò),該方法的中心思想是,在該類中添加一個(gè) operator Type()的函數(shù),該函數(shù)沒(méi)有返回值,要從該類轉(zhuǎn)型到該Type類型的時(shí)候,編譯器會(huì)自動(dòng)調(diào)用該成員函數(shù),轉(zhuǎn)換成Type類型














3. 拷貝構(gòu)造函數(shù)和賦值操作符
子類如果沒(méi)有寫這兩個(gè),編譯器將會(huì)自動(dòng)生成,生成的代碼中調(diào)用父類的拷貝構(gòu)造函數(shù)和賦值操作符,所以如果我們自己寫的話,最好也要調(diào)用父類的拷貝構(gòu)造函數(shù)和賦值操作符。
因?yàn)闃?gòu)造函數(shù)和operator=和拷貝構(gòu)造函數(shù)只負(fù)責(zé)初始化自己層次的構(gòu)造,所以要完成初始化,必須先要初始化父類,所以他們不能被繼承。(其實(shí)沒(méi)理解這句話,如果被繼承了的話,那子類就可以負(fù)責(zé)完成父類的初始化了???)
一旦我們自己決定手動(dòng)添加拷貝構(gòu)造函數(shù)和operator=,編譯器會(huì)假定我們已經(jīng)知道所作的一切,并且不再自動(dòng)調(diào)用基類版本,如果想調(diào)用,必須我們自己添加,即初始化列表。
4. 多態(tài)的進(jìn)化(為什么使用多態(tài)和怎么用)
....
1