c 基礎 繼承 12 繼承中的建構函式

2021-10-13 17:13:47 字數 942 閱讀 5389

特點:在子類物件例項化時,缺省會先呼叫父類的建構函式,一直往上找父親。從老祖宗開始執行,一代一代往下。

例子:

class

gameobject

}class

animal

: gameobject

}class

tree

: animal

}class

person

}

截圖:

父類中的無參建構函式

所以通過base關鍵字,來呼叫父類的有參建構函式。

例子:

class

gameobject

}class

animal

: gameobject

只動物"

, i);}

}class

tree

: animal

顆樹",num);}

//通過this呼叫該類引數匹配的建構函式,簡接呼叫了父類

public

tree

(int num,string category)

:this

(num)

顆樹", num,category);}

}class

person

}

截圖:

this與base的區別:

語法上:括號裡變數名要與前面建構函式裡的引數名一致

this代表該類的某乙個建構函式

base代表父類的某乙個建構函式

C 建構函式的繼承

一 基類沒有定義建構函式的情況 1 派生類也可以不定義建構函式,全部採用預設的建構函式,此時,派生類新增成員的初始化工作可以用其他公有函式來完成。2 如果只有派生類定義建構函式,只需要構造派生類物件即可,物件的基類部分使用預設建構函式來自動建立 二 基類中存在建構函式 1 基類中存在不帶引數的建構函...

c 繼承的建構函式

子類為完成基類初始化,在c 11之前,需要在初始化列表呼叫基類的建構函式,從而完成建構函式的傳遞。如果基類擁有多個建構函式,那麼子類也需要實現多個與基類建構函式對應的建構函式。class base base char c m c c m value 0 private intm value char...

C 繼承中的建構函式問題

c 的繼承是不會整合建構函式的,但是子類在實現建構函式時會預設呼叫父類中的無參建構函式 想要不呼叫就要在子類中進行一些特殊操作 class program class person public person 子類需要呼叫父類的無參建構函式 public string name public int...