構造函數(shù)
一.構造函數(shù)的作用:
構造函數(shù)主要用于來對類的對象生成標識符平道,對數(shù)據(jù)成員進行初始化募强,和分配內存空間寞宫。
相當于Objective-c的[ [類名 alloc ] init]用alloc來給對象分配內存空間萧福,用init方法來初始化對象辈赋。
二.構造函數(shù)的特點:
構造函數(shù)是沒有返回值的。故也沒有返回值的類型钥屈。
構造函數(shù)的名稱必須和類的名稱相同悟民。
當生成該類的對象時,會自動調用類的構造函數(shù)篷就。
構造函數(shù)不能被顯式調用射亏,既不能作為對象的成員函數(shù)來調用竭业。
構造函數(shù)根據(jù)定義方式可分為顯式構造函數(shù)和默認構造函數(shù)。顯式定義的構造函數(shù)可以帶有參數(shù)未辆。當構造函數(shù)被顯式定義了之后系統(tǒng)就不會再生成默認的構造函數(shù)。
大多數(shù)情況下兼蜈,默認生成的構造函數(shù)是沒有用的,只是一個和類名相同的空函數(shù)饭尝。
構造函數(shù)也是函數(shù)支持重載。需要注意的是重載函數(shù)的產生的二義性钥平,使程序報錯。
三.初始化表達式:
對象中的一些數(shù)據(jù)成員除了可以在構造函數(shù)中初始化之外知态,還可以用初始化列表來完成立叛。在構造函數(shù)后面用:引出。
初始化列表會在構造函數(shù)調用之前完成初始化操作秘蛇。每個成員在初始化列表中只能出現(xiàn)一次,且出現(xiàn)的順序與執(zhí)行的順序無關赁还,而是取決于在類中聲明的順序。
析構函數(shù)
一.析構函數(shù)的作用:
析構函數(shù)與構造函數(shù)相反蹈胡,在對象被撤銷時自動調用朋蔫,進行對數(shù)據(jù)成員的清理工作。release啊什么的驯妄。
二.析構函數(shù)的特點:
析構函數(shù)名與類名相同,在函數(shù)名加~與構造函數(shù)區(qū)分青扔。
析構函數(shù)沒有返回值和參數(shù),故這貨不能被重載雀鹃,只能有一個励两。
與構造函數(shù)不同的是,析構函數(shù)可以被顯式調用当悔,用于釋放對象中申請的內存踢代。
例:對象名.~類名();
? ? ? Cat.~anima();