新聞中心
C++編程語言的應(yīng)用范圍比較廣泛,能夠以一種簡單靈活的方式幫助開發(fā)人員實現(xiàn)許多功能。在C++類繼承中,一個派生類可以從一個基類派生,也可以從多個基類派生。 從一個基類派生的繼承稱為單繼承;從多個基類派生的繼承稱為多繼承。

例:單繼承的定義
- class B:public
- {
- < 派生類新定義成員>
- };
- 多繼承的定義
- class C:public A,private B
- {
- < 派生類新定義成員>
- };
注:如果在基類前不寫訪問控制符,則默認為私有的#t#
派生類共有三種C++類繼承方式:公有繼承(public),私有繼承(private),保護繼承(protected)
公有繼承(public)
基類的公有成員和保護成員可以作為其派生類的公有成員和保護成員
派生類的成員函數(shù)可以訪問基類中的公有成員和保護成員,無法訪問基類中的私有成員
派生類的對象可以訪問基類的公有成員
私有繼承(private)
基類的公有成員和保護成員都作為其派生類的私有成員
在私有繼承時,基類的成員只能由直接派生類訪問,而無法再往下繼承
保護C++類繼承(protected)
基類的所有公有成員和保護成員都成為派生類的保護成員
基類的公有成員和保護成員只能被它的直接派生類成員函數(shù)或友元訪問
構(gòu)造函數(shù)和析構(gòu)函數(shù)不能被繼承
因此構(gòu)造派生類的對象時,需要對基類數(shù)據(jù)成員.新增數(shù)據(jù)成員和成員對象的數(shù)據(jù)成員進行初始化
派生類構(gòu)造函數(shù)的參數(shù)表部分既需要包含子類某些數(shù)據(jù)成員的初始值,也要包含基類的數(shù)據(jù)成員的初始值
如果基類沒有默認的構(gòu)造函數(shù),那么派生類必須具有給基類構(gòu)造函數(shù)提供參數(shù)的構(gòu)造函數(shù)
派生類構(gòu)造函數(shù)一般語法如下:
- 派生類名::派生類名(參數(shù)總表)
- :基類名1(參數(shù)表1),...,基類名n(參數(shù)表n)
- {
- 初始化語句
- }
當基類有多個構(gòu)造函數(shù)時,編譯器根據(jù)派生類構(gòu)造函數(shù)為基類構(gòu)造函數(shù)提供的參數(shù)初始化列表中的參數(shù)類型來確定調(diào)用哪個構(gòu)造函數(shù)
派生類的析構(gòu)函數(shù)應(yīng)當首先對派生類新增普通成員進行清理
然后對派生類新增的對象成員進行清理
最后是對所有從C++類繼承來的成員進行清理
分享標題:C++類繼承基本概念解析
當前鏈接:http://www.dlmjj.cn/article/ccddpps.html


咨詢
建站咨詢
