1、實現方法(class 派生:派生方式 父類1,派生方式 父類2…….)
class a
; class b:public a ……
;a稱為父類(基類)
b稱為子類(派生類)
2、派生方式:公有派生,保護派生,私有派生
c++不會選擇繼承,而是全部繼承(除了建構函式和析構函式),只是引用受限
公有派生:父類公有(子類公有) 私有(私有) 保護(保護)
保護派生:父類公有(保護) 私有(私有) 保護(保護)
私有繼承:父類公有(私有) 私有(私有) 保護(保護)
子類不能直接訪問父類繼承過來的私有成員(可通過父類提供的非私有介面訪問)
參考**
#include
#include
using
namespace
std;
class person
;person::person():id(0)
;teacher::teacher(int id,const
char* name,const
char* addr,const
char* dept,float salary,const
char* grade):person(id,name,addr)//父類構造
void teacher::display()
int main()
3、初始化:既要初始化新增,又要初始化繼承過來的資料,
父類只能通過初始化列表,而不能在函式體中(this->person(:))
若子類不顯示構造父類部分,則編譯器會預設新增呼叫預設建構函式。
構造:先父類再子類
析構:先子類,後父類(棧區特點)
4、過載:同一作用域下,同名函式但形參不同。
重寫(覆蓋):
函式: 父類和子類,只要函式名一樣,(形參不管一樣還是不一樣)類似全域性和區域性,子類的方法會覆蓋父類(子類優先),只是作用域被覆蓋,原來的方法還存在,不是替換
變數:子類優先
二義性:乙個子類中,父類和子類出現同名現象
解決方法:(呼叫時加上作用域)子類.作用域::成員
5、 父子之間的賦值
不同型別之間不能相互賦值,同型別之間可互相賦值,記憶體空間布局相同
子類賦值給父類(可以,子類一定有父類的一部分,空間相似:)
父類賦值給子類(失敗)
只能由子類賦值給父類,不能由父類賦值給子類
子類=子類+父類
21 C 繼承模型
類圖描述 記憶體描述 描述 include using namespace std class aint m a classb public aint m b classc public bint m c classy int main void 類圖描述 記憶體描述 描述 對class d取位址,...
嵌入式C學習
靜態變數與靜態函式 extern變數 關鍵字const和巨集定義define 程式中所有數在計算機記憶體中都是以二進位制的形式儲存的。位運算就是直接對整數在記憶體中的二進位制位進行操作。常見的位運算有 and運算 or運算 xor運算 not運算 shl運算 和shr運算 and運算通常用於二進位制...
嵌入式C學習
位域函式指標 定義方式 結構體做函式引數傳遞有三種方式 1 用結構體的單個成員作為函式引數,向函式傳遞結構體的單個成員 屬於傳值呼叫,不會影響相應的實參結構體的值 分為值傳遞和位址傳遞。2 用結構體變數做函式引數,向函式傳遞結構體完整結構 屬於傳值呼叫,不會影響相應的實參結構體的值 屬於位址傳遞。3...