C 類繼承 繼承後函式的值

2021-10-01 14:17:03 字數 1143 閱讀 4761

類的繼承會首先尋找基類,若基類未實現,則會尋找派生類的函式

1. class繼承,函式不繼承

#include class base

~base(){}

int a;

void seta() };

class a:public base

~a(){}

void seta()

};class b:public base

~b(){}

void seta() };

int main()

執行結果:

2. 函式和class都繼承

#include class base

~base(){}

int a;

virtual void seta() };

class a:public base

~a(){}

virtual void seta()

};class b:public base

~b(){}

virtual void seta() };

int main()

執行結果:注意派生類中可以不寫virtual,最好寫上,以辨別是函式繼承

若將2中基類的函式寫為純虛函式,執行的結果一樣,但是如果基類是純虛函式,派生類必須實現相應的函式。

class base

~base(){}

int a;

virtual void seta()=0;

};

3. 類a中不有函式,則繼承自基類

class a:public base

~a(){}

};

結果為:

類繼承 繼承類的建構函式

派生類不能直接訪問基類的私有成員,必須通過基類提供的公有方法。派生類不能繼承基類的建構函式,因為建構函式和成員函式存在區別 建構函式用於建立新的物件,而其他成員函式是被現有的物件呼叫。派生類建構函式必須使用基類的建構函式。建立派生類物件時,先建立基類物件,因此基類物件應該在進入派生類建構函式之前被建...

c 繼承 繼承 的二義性 虛函式

父類 plane 兩個類 乙個是標頭檔案 乙個是原始檔 pragma once include class plane 原始檔 include include include using namespace std plane plane name f 22 year 2010 plane plan...

類的繼承 繼承中的構造和析構

本文參照於狄泰軟體學院,唐佐林老師的 c 深度剖析教程 問題 我們繼承了父類後,如何初始化父類成員?父類建構函式和子類建構函式有什麼關係?子類中可以定義建構函式 子類建構函式必須對繼承而來的成員進行初始化 直接通過初始化列表或者賦值的方式進行初始化 呼叫父類建構函式進行初始化 父類建構函式在子類中的...