繼承
派生類成員對(duì)基類成員的訪問能力。
在派生類構(gòu)建構(gòu)造函數(shù)和析構(gòu)函數(shù)時(shí)候需要注意。
基類的構(gòu)造函數(shù)和析構(gòu)函數(shù)不能被派生類繼承;
如果基類沒有定義構(gòu)造函數(shù),派生類也不能定義構(gòu)造函數(shù),都要采用默認(rèn)構(gòu)造函數(shù)(由于編譯器對(duì)提供構(gòu)造函數(shù)有條件,那么在這種情況下,啥都別干就行了)。
如果基類定義了帶參數(shù)的構(gòu)造函數(shù),那么派生類要定義性的構(gòu)造函數(shù),提供一個(gè)將參數(shù)傳遞給基類構(gòu)造函數(shù)的途徑。
如果派生類的基類也是派生類,每個(gè)派生類只負(fù)責(zé)直接基類的構(gòu)。
派生類是否要定義析構(gòu)函數(shù)和所屬的基類無關(guān)。
基類和派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行順序如下:
基類的構(gòu)造函數(shù);
派生類的構(gòu)造函數(shù);
派生類的析構(gòu)函數(shù);
基類的析構(gòu)函數(shù);
虛函數(shù)與多態(tài)性、純虛函數(shù)。
用virtual關(guān)鍵字申明(定義)的函數(shù)叫做虛函數(shù),在基類的函數(shù)前面加上virtual關(guān)鍵字,在派生類中重寫該函數(shù),運(yùn)行時(shí)會(huì)根據(jù)對(duì)象的實(shí)際類型來調(diào)用相應(yīng)的函數(shù),這就是c++的多態(tài)性,在基類中定義一個(gè)統(tǒng)一的接口函數(shù),在不同的派生類中重寫該函數(shù),實(shí)現(xiàn)不同的功能。
純虛函數(shù)是指被標(biāo)明為不具體實(shí)現(xiàn)的虛成員函數(shù),凡是有純虛函數(shù)的類叫做抽象類。抽象類不能聲明對(duì)象,只能作為基類為派生類服務(wù),派生類必須完全實(shí)現(xiàn)基類的純虛函數(shù),否則派生類也會(huì)變成抽象類。
Virtual void functionName()=0;//純虛函數(shù)
函數(shù)的覆蓋與隱藏;
構(gòu)成覆蓋的條件;
基類函數(shù)必須是虛函數(shù);
發(fā)生覆蓋的2個(gè)函數(shù)必須分別處于基類和派生類中;
函數(shù)名稱與參數(shù)列表必須完全相同(是不是返回值類型也必須相同?)
構(gòu)成隱藏的條件;
基類和派生類的函數(shù)完全相同,基類沒有使用virtual關(guān)鍵字;
基類和派生類的函數(shù)名相同,參數(shù)不同,此時(shí)不管基類函數(shù)是否使用virtual關(guān)鍵字,基類的函數(shù)都被隱藏。
函數(shù)重載發(fā)生在同一個(gè)類中,覆蓋和隱藏發(fā)生在基類和派生類關(guān)系中。
引用
偶然的機(jī)會(huì)看到了《Effective C++》中關(guān)于引用的建議,對(duì)于不需要修改原值的引用,使用引用時(shí)盡量加上const關(guān)鍵字,避免對(duì)原值造成修改(記不大清楚了,大概是這樣)。
引用的定義:int &a=b;
看到一個(gè)小程序,不引入第三個(gè)變量,交換2個(gè)變量的值。
void change(int& a,int& b)
{
a=a+b;
b-a-b;
a=a-b;
}//有一面試的時(shí)候被問到了,當(dāng)時(shí)沒答出來
VC++程序編譯鏈接的原理和過程。
有點(diǎn)小復(fù)雜,一時(shí)間理解不了,有空慢慢研究。
相關(guān)推薦:
2012年計(jì)算機(jī)等考四級(jí)數(shù)據(jù)庫工程師備考筆記匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |