C 多型 過載重寫和重定義

2021-10-23 01:40:48 字數 1405 閱讀 2295

c++中物件導向3大概念

封裝: 突破c函式的概念…用類做函式引數的時候,可以使用物件的屬性 和物件的方法

繼承: a b **復用

多型 : 可以使用未來…

實現多型的三個條件:

1:要有繼承

2 :要有虛函式重寫

3: 用父類指標(父類引用)指向子類物件…

class

parent

virtual

void

print()

//子類的和父類的函式名字一樣

protected

:private

:int a ;};

class

child

:public parent

virtual

void

print()

//virtual父類寫了virtual,子類可寫可不寫

protected

:private

:int b;};

void

howtoprint

(parent *base)

void

howtoprint2

(parent &base)

重寫 過載 重定義

重寫發生在2個類之間

過載必須在乙個類之間

重寫分為2類

1 虛函式重寫 將發生多型

2 非虛函式重寫(重定義)

class

parent

virtual

void

func()

virtual

void

func

(int i)

virtual

void

func

(int i,

int j)

virtual

void

func

(int i,

int j,

int m ,

int n)

protected

:private:}

;class

child

:public parent

/* void abc(int a)

*/virtual

void

func

(int i,

int j)

virtual

void

func

(int i,

int j,

int k)

protected

:private:}

;//過載重寫和重定義

void

main()

C 過載 重寫 重定義 多型

多型是基於對抽象方法的覆蓋來實現的,用統一的對外介面來完成不同的功能。過載也是用統一的對外介面來完成不同的功能。那麼兩者有什麼區別呢?也叫覆蓋,子類重新定義父類中有相同名稱相同引數的虛函式,主要是在繼承關係中出現的,被重寫的函式必須是virtual的,重寫函式的訪問修飾符可以不同,儘管virtual...

C 過載 重寫和重定義

函式過載 overload 函式過載是指在乙個類中宣告多個名稱相同但引數列表不同的函式,這些的引數可能個數或順序,型別不同,但是不能靠返回型別來判斷。特徵是 1 相同的範圍 在同乙個作用域中 2 函式名字相同 3 引數不同 4 virtual 關鍵字可有可無 注 函式過載與有無virtual修飾無關...

C 過載重寫重定義

includeusing namespace std 函式過載 必須在同乙個類中進行 子類無法過載父類的函式,父類同名函式將被名稱覆蓋 過載是在編譯期間根據引數型別和個數決定函式呼叫 函式重寫 必須發生於父類和子類之間 並且父類和子類中的函式必須有完全相同的原型 使用virtual宣告之後能夠產生多...