資源描述:
《C++繼承與派生類習題》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫。
1、第九章繼承與派生類9.2典型例題分析與解答例題1:下列對派生類的描述中,(?????)是錯誤的。A.??一個派生類可以作為另一個派生類的基類B.??派生類至少有一個基類C.??派生類的成員除了它自己的成員外,還包含了它的基類成員D.?派生類中繼承的基類成員的訪問權限到派生類保持不變答案:D分析:一個派生類可以作為另一個派生類的基類。無論是單繼承還是多繼承,派生類至少有一個基類。派生類的成員除了它自己的成員外,還包含了它的基類成員。派生類中繼承的基類成員的訪問權限到派生類受繼承方式影響的,對于私有繼承,基類的publi
2、c,protected成員在派生類中作為private成員;對于公有繼承,基類的public,protected成員在派生類中訪問屬性不變;對于保護繼承,基類的public、protected成員在派生類中作為protected成員。例題2:派生類的對象對它的哪一類基類成員是可以訪問的?(?????)???A.公有繼承的基類的公有成員???????????????B.公有繼承的基類的保護成員???C.公有繼承的基類的私有成員???????????????D.保護繼承的基類的公有成員答案:A分析:公有繼承的基類的公有成
3、員在派生類中保持公有訪問權限,所以派生類對象可以訪問它;公有繼承的基類的保護成員在派生類中保持保護訪問權限,所以派生類對象不可以訪問它;基類的私有成員不能被派生到派生類中,所以派生類對象不可以訪問它;保護繼承的基類的公有成員在派生類中變成保護的訪問權限,所以派生類對象不可以訪問它。?例題3:關于多繼承二義性的描述,(?????)是錯誤的。A.?派生類的多個基類中存在同名成員時,派生類對這個成員訪問可能出現(xiàn)二義性B.??一個派生類是從具有共同的間接基類的兩個基類派生來的,派生類對該公共基類的訪問可能出現(xiàn)二義性C.??解
4、決二義性最常用的方法是作用域運算符對成員進行限定D.??派生類和它的基類中出現(xiàn)同名函數(shù)時,將可能出現(xiàn)二義性答案:D分析:出現(xiàn)二義性有兩種情況:調(diào)用不同基類的相同成員時可能出現(xiàn)二義性;訪問共同基類的成員時可能出現(xiàn)二義性。消除二義性的方法是采用作用域運算符。派生類和它的基類中出現(xiàn)同名函數(shù)時,不可能出現(xiàn)二義性。?例題4:多繼承派生類構造函數(shù)構造對象時,(?????)被最先調(diào)用。A.派生類自己的構造函數(shù)???????B.虛基類的構造函數(shù)C.非虛基類的構造函數(shù)?????? ????D.派生類中子對象類的構造函數(shù)答案:B分析:多
5、繼承派生類構造函數(shù)構造對象時,構造函數(shù)的調(diào)順序是:虛基類的構造函數(shù),派生類中子對象類的構造函數(shù),?派生類自己的構造函數(shù)。?例題5:?C++類體系中,能被派生類繼承的是(?????)。A.構造函數(shù)????B.虛函數(shù)??C.析構函數(shù)?????D.友元函數(shù)答案:B分析:C++類體系中,構造函數(shù)、析構函數(shù)和友元函數(shù)是不能被派生類繼承的.?例題6:設有基類定義:classCbase{???private:inta;????protected:intb;????public:intc;};派生類采用何種繼承方式可以使成員變量b成
6、為自己的私有成員(?????)A.?私有繼承?????????????B.保護繼承C.?公有繼承?????????????D.私有、保護、公有均可答案:A分析:私有繼承時,基類的protected成員在派生類中作為private成員。?例題7:C++將類繼承分為??????(1)??????和?????(2)???????兩種。答案:(1)單繼承 (2)多繼承分析:派生類可以只從一個基類中派生,也可以從多個基類中派生。從一個基類中派生的繼承方式稱為單繼承。從多個基類中派生的繼承方式稱為多繼承。?例題8:派生類
7、可以定義其_______________中不具備的數(shù)據(jù)和操作。答案:基類分析:派生類是從基類派生的,派生類包含了它所有基類的除構造函數(shù)、析構函數(shù)之外的所有成員,同時還擁有它自己的新成員。?例題9:派生類構造函數(shù)的初始化列表中包含____________________________。答案:初始化基類數(shù)據(jù)成員、新增內(nèi)嵌對象數(shù)據(jù)及新增一般成員數(shù)據(jù)所需要的全部參數(shù)。?例題10:在繼承機制下,當對象消亡時,編譯系統(tǒng)先執(zhí)行??(1)???的析構函數(shù),然后才執(zhí)行???(2)??的析構函數(shù),最后執(zhí)行???(3)???的析構函
8、數(shù)。答案:(1)派生類 (2)派生類中子對象類 (3)基類分析:派生類的析構函數(shù)的執(zhí)行次序與構造函數(shù)正好相反,先調(diào)用派生類的析構函數(shù),再調(diào)用派生類中子對象類的析構函數(shù),最后調(diào)用基類的析構函數(shù)。?例題11:設有以下類的定義:classA???????????????classB:protectedA????????classC:priv