一、在c++中,關於建構函式有以下幾點說明:
1、建構函式最重要的作用是建立物件本身。
2、c++規定,每個類必須有乙個建構函式,沒有建構函式,則無法建立物件。
3、c++規定,如果乙個類沒有提供任何的建構函式,那麼c++編譯器會提供乙個預設的建構函式,且這個預設的建構函式是不帶引數的建構函式,它只負責物件的建立,不能進行物件的初始化。
4、只要乙個類定義了乙個建構函式,不管這個建構函式是否是帶引數的建構函式,c++就不再提供任何的建構函式。
5、在main函式中定義類物件時,會自動呼叫類裡的建構函式。
6、建構函式沒有返回值,用的是類名。建構函式進行記憶體的分配。建構函式是用來給系統呼叫的。
7、在乙個類中可以有兩個及以上的建構函式,也可以定義兩個相同名字的建構函式,乙個不帶引數,乙個帶引數,這叫做函式的過載。函式的過載不止可以用於建構函式中,也可以在普通的函式之間發生。在main函式中宣告類物件時,編譯的時候c++會依據傳遞的引數來進行選擇依靠哪乙個建構函式進行初始化。
二、關於析構函式,有以下幾點說明
1、當乙個物件生命週期結束的時候,該物件占用的記憶體空間就要被收回,這個就是析構函式的工作。即析構函式是用來進行記憶體的釋放。
2、析構函式是「反向」的建構函式,析構函式不允許有返回值,析構函式不允許帶引數,並且乙個類中只能有乙個析構函式。
3、析構函式的作用正好與建構函式相反,物件超出其作用範圍,對應的記憶體空間被系統收回或被程式用delete刪除時,析構函式被呼叫。
4、根據析構函式的特點,可以在建構函式中初始化物件的某些成員變數,給其分配記憶體空間(堆記憶體),在析構函式中釋放物件執行期間所申請的資源。
5、
C 特性探尋 建構函式和析構函式
建構函式提供了一種機制,通過它有機會完成必要的初始化工作,從而使物件成為有意義 的存在物,而不僅僅只是一塊原始的空間。但是,我們逐漸了解到,建構函式具有的地位,不僅對於使用者 程式設計師 對於編譯器履 行職責也極為重要。通過這個機制,它讓c 的一些基本的特性,如繼承 多型得到了正確 的貫徹和表現。首...
C 建構函式 析構函式 虛析構函式
一般地,建立物件和刪除物件時,父類建構函式 子類建構函式 子類析構函式 父類析構函式。特例 如果用new建立了乙個物件,並將父類的指標指向這個子類的物件,那麼用delete撤銷物件時,系統只執行基類的析構函式,而不執行派生類的析構函式。如果希望按照子類析構函式 父類析構函式的順序執行,那麼應該將基類...
C 建構函式,析構函式
一 建構函式 在建立類的物件時自動呼叫的乙個函式,主要是為物件本身做初始化工作 沒有返回值,名字和類的名字相同,因為是在建立物件時候自動呼叫的,所以必須型別為public的,可以帶引數,可以有多個 如果類中沒有建構函式,在下面三種情況下,會自動的新增預設的建構函式 1.如果類中有虛函式,或者類中有虛...