建構函式的作用是給類中的資料成員初始化,在乙個類物件產生的時候自動呼叫,建構函式分為帶參構造、無參構造。
他倆唯一的區別就是乙個有引數,乙個沒引數,視實際情況使用
class cmyc
cmyc::cmyc()
cmyc::cmyc(int a,float b,char *ch)
它在乙個類物件被建立的時候自動呼叫,完成初始化
int main()
在一些特殊的情況下,類中資料成員並不能被直接賦值,那該怎麼辦呢,有乙個東西叫成員初始化列表。
成員初始化列表只能寫在函式的定義後面,可以將它理解為一種構造
class cmyc
cmyc:: cmyc():a(123),b(456) //正確,有多項需要初始化時用逗號間隔,不需分號結尾
cmyc:: cmyc()
``
析構的作用與構造的作用相反,構造是從無到有(初始化),析構是從有到無,簡單的說,析構就是對類中的操作進行收尾工作(釋放記憶體等),它在乙個類物件的生存期結束之後被自動呼叫,它與構造除了說明上有些許的不同外,還有就是沒有引數列表
class cmyc
cmyc::cmyc()
cmyc::~cmyc()
乙個類中有且只能有乙個析構,系統會提供乙個隱式的啥都不幹的析構,如果我們自己寫了乙個,就會覆蓋掉系統提供的那乙個。
那麼析構在什麼時候需要我們自己說明呢,當類中資料成員存在指標,且指標指向乙個動態記憶體,那麼就需要寫析構
C 構造和析構
include using namespace std class b b b b b b int i data i b operator b b private int data b play b b int main output constructed by parameter 5 destr...
C 構造和析構
1 繼承關係可認為,子類在父類的基礎上進行。從這個角度講,可把它認為穿衣 的過程。穿衣是 先穿內衣,再穿外套。是 先脫外套,在 構造是 先呼叫父類構造方法,再呼叫子類構造方法。析構是 先呼叫子類析構方法,再呼叫父類析構方法。2 構造可分為兩個步驟 初始化列表和方法內賦值。前者的使用場景是 初始化,即...
C 析構和構造
1.析構為構造的逆序,單繼承派生類只有乙個基類或虛基類,根據四個優先級別確定構造順序 2.基類 物件成員不列出時自動呼叫無參建構函式 3.以下情況派生類必須定義自己的建構函式 include using namespace std class a 非const例項資料成員a,可在函式體內再次對a賦值...