資源描述:
《繼承與派生C++試題.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、繼承與派生類知識要點1.1.?掌握繼承和派生的定義,派生類的定義方法。(1)掌握繼承的兩種類型:單繼承和多繼承。(2)掌握private,public,protected三種繼承方式的特點。繼承方式?jīng)Q定了基類中的成員在派生類中的屬性。三種繼承方式的共同點:基類的private成員在派生類中不可見。區(qū)別:對于私有繼承,基類的public、protected成員在派生類中作為private成員;對于公有繼承,基類的public、protected成員在派生類中訪問屬性不變;對于保護(hù)繼承,基類的public、protected成員在派生類中作為protected成
2、員。(3)掌握派生類中的構(gòu)造函數(shù)和析構(gòu)函數(shù)的使用?;惖臉?gòu)造函數(shù)和析構(gòu)函數(shù)不能繼承,所以必要時在派生類中定義自己的構(gòu)造函數(shù)和析構(gòu)函數(shù)。派生列的構(gòu)造函數(shù)完成基類中新增數(shù)據(jù)成員和基類數(shù)據(jù)成員的初始化,基類數(shù)據(jù)成員的初始化通過基類構(gòu)造函數(shù)來實現(xiàn)。(4)掌握派生類的同名覆蓋規(guī)則。(5)掌握賦值兼容規(guī)則?;悓ο罂梢允褂霉信缮悓ο髞泶?,包括:派生類對象可以賦值給基類對象;派生類對象可以初始化基類對象的引用;基類類型指針可以指向派生類對象。2.2.?掌握多重繼承的概念、定義方法、多重繼承派生類構(gòu)造函數(shù)的執(zhí)行順序。派生類構(gòu)造函數(shù)的執(zhí)行順序是先執(zhí)行所有基類的構(gòu)造函數(shù)(
3、順序按照定義派生類時指定的各基類順序),在執(zhí)行對象成員所在類的構(gòu)造函數(shù)(順序按照他們在類中的聲明順序),最后執(zhí)行派生類構(gòu)造函數(shù)體中的內(nèi)容。3.3.?掌握虛基類的概念和定義方法。在多重繼承中,如果多條繼承路徑上有一個公共的基類,則在這些路徑的匯合點上的派生類會產(chǎn)生來自不同路徑的公共基類的多個拷貝,如果用virtual把公共基類定義成虛基類,則只會保留公共基類的一個拷貝。9.2典型例題分析與解答例題1:下列對派生類的描述中,()是錯誤的。A.A.?一個派生類可以作為另一個派生類的基類B.B.?派生類至少有一個基類C.C.?派生類的成員除了它自己的成員外,還包含了
4、它的基類成員D.D.派生類中繼承的基類成員的訪問權(quán)限到派生類保持不變答案:D分析:一個派生類可以作為另一個派生類的基類。無論是單繼承還是多繼承,派生類至少有一個基類。派生類的成員除了它自己的成員外,還包含了它的基類成員。派生類中繼承的基類成員的訪問權(quán)限到派生類受繼承方式影響的,對于私有繼承,基類的public,protected成員在派生類中作為private成員;對于公有繼承,基類的public,protected成員在派生類中訪問屬性不變;對于保護(hù)繼承,基類的public、protected成員在派生類中作為protected成員。例題2:派生類的對象對
5、它的哪一類基類成員是可以訪問的?()A.公有繼承的基類的公有成員B.公有繼承的基類的保護(hù)成員C.公有繼承的基類的私有成員D.保護(hù)繼承的基類的公有成員答案:A分析:公有繼承的基類的公有成員在派生類中保持公有訪問權(quán)限,所以派生類對象可以訪問它;公有繼承的基類的保護(hù)成員在派生類中保持保護(hù)訪問權(quán)限,所以派生類對象不可以訪問它;基類的私有成員不能被派生到派生類中,所以派生類對象不可以訪問它;保護(hù)繼承的基類的公有成員在派生類中變成保護(hù)的訪問權(quán)限,所以派生類對象不可以訪問它。?例題3:關(guān)于多繼承二義性的描述,()是錯誤的。A.A.派生類的多個基類中存在同名成員時,派生類對
6、這個成員訪問可能出現(xiàn)二義性B.B.?一個派生類是從具有共同的間接基類的兩個基類派生來的,派生類對該公共基類的訪問可能出現(xiàn)二義性C.C.?解決二義性最常用的方法是作用域運算符對成員進(jìn)行限定D.D.?派生類和它的基類中出現(xiàn)同名函數(shù)時,將可能出現(xiàn)二義性答案:D分析:出現(xiàn)二義性有兩種情況:調(diào)用不同基類的相同成員時可能出現(xiàn)二義性;訪問共同基類的成員時可能出現(xiàn)二義性。消除二義性的方法是采用作用域運算符。派生類和它的基類中出現(xiàn)同名函數(shù)時,不可能出現(xiàn)二義性。?例題4:多繼承派生類構(gòu)造函數(shù)構(gòu)造對象時,()被最先調(diào)用。A.派生類自己的構(gòu)造函數(shù)B.虛基類的構(gòu)造函數(shù)C.非虛基類的構(gòu)
7、造函數(shù) D.派生類中子對象類的構(gòu)造函數(shù)答案:B分析:多繼承派生類構(gòu)造函數(shù)構(gòu)造對象時,構(gòu)造函數(shù)的調(diào)順序是:虛基類的構(gòu)造函數(shù),派生類中子對象類的構(gòu)造函數(shù),派生類自己的構(gòu)造函數(shù)。?例題5:C++類體系中,能被派生類繼承的是()。A.構(gòu)造函數(shù)B.虛函數(shù)C.析構(gòu)函數(shù)D.友元函數(shù)答案:B分析:C++類體系中,構(gòu)造函數(shù)、析構(gòu)函數(shù)和友元函數(shù)是不能被派生類繼承的.?例題6:設(shè)有基類定義:classCbase{private:inta;protected:intb;public:intc;};派生類采用何種繼承方式可以使成員變量b成為自己的私有成員()A.私有繼承B.保護(hù)繼承C
8、.公有繼承D.私有、保護(hù)、公有均可答案:A分析:私有