如果不用建構函式初始化,該怎麼辦:
為每個類都提供乙個public的initialize函式;
物件建立後立即呼叫initialize函式進行初始化。
缺點1)initialize只是乙個普通的函式,必須顯示的呼叫
2)一旦由於失誤的原因,物件沒有初始化,那麼結果將是不確定的
沒有初始化的物件,其內部成員變數的值是不定的。
所以c++對類提供了乙個給物件的初始化方案,就是建構函式。
定義c++中的類可以定義與類名相同的特殊成員函式,這種與類名相同的成員函式叫做建構函式.
class類名 };
比如:
classa };
呼叫自動呼叫:一般情況下c++編譯器會自動呼叫建構函式.
手動呼叫:在一些情況下則需要手工呼叫建構函式.
規則:1 在物件建立時自動呼叫,完成初始化相關工作。
2 無返回值,與類名同,預設無參,可以過載,可預設引數。
3 一經實現,預設不復存在。
定義c++中的類可以定義乙個特殊的成員函式清理物件,這個特殊的成員函式叫做析構函式.
class類名 };
比如:
classa };
規則:1 物件銷毀時,自動呼叫。完成銷毀的善後工作。
2 無返值 ,與類名同。無參。不可以過載與預設引數
析構函式的作用,並不是刪除物件,而在物件銷毀前完成的一些清理工作。
**示例:
#define _crt_secure_no_warnings#includeusing
namespace
std;
class
test
test(
inta)
//無引數的建構函式
test()
void
printt()
//析構函式和建構函式都沒有返回值,
//析構函式沒有形參
~test()
private
:
intm_x;
intm_y;
};void
test()
"觸發析構函式
}int main(void
)
C (16)物件的構造和析構
定義 1 c 中的類可以定義與類名相同的特殊成員函式,這種與類名相同的成員函式叫做建構函式 2 建構函式在定義時可以有引數 3 沒有任何返回型別的宣告。呼叫 自動呼叫 一般情況下c 編譯器會自動呼叫建構函式 手動呼叫 在一些情況下則需要手工呼叫建構函式 定義 1 c 中的類可以定義乙個特殊的成員函式...
6 1 物件的構造與析構
物件在被建立時就會呼叫其建構函式 若在乙個區段中有乙個以上的離開點,則析構函式必須放在每個離開點前 eg 析構函式 儘管程式不會執行到這裡,但在物件的生命結束期末尾也會呼叫析構函式 把物件盡可能的放置在使用它的程式區段附近,可以節省非必要的物件產生操作和銷毀操作 全域性物件如果有建構函式與析構函式的...
類和物件 構造析構函式
a.類和物件 1.關鍵字class表明正宣告乙個類,類中資料成員 屬性 和資料功能 行為 經過封裝,使得使用者通過外部介面訪問。2.類的封裝隱藏了實現細節,同時也保證了資料的安全性。3.只要類的外部介面不變,內部實現細節再怎麼修改,使用類庫的程式也不用修改。4.物件是類型別的變數。5.內聯成員函式 ...