初始化是如此重要,以至于在Thinking in c++中大部分時(shí)間都在強(qiáng)調(diào)一定要初始化。如果不初始化一塊內(nèi)存就去應(yīng)用的話(huà),你將得到不確定的結(jié)果,這增加了程序的風(fēng)險(xiǎn)。
程序員經(jīng)常忘記初始化,所以在C++中,編譯器將初始化的任務(wù)包攬了,但是還是需要程序員編寫(xiě)初始化代碼的。同樣的,清除一樣非常重要,分配的內(nèi)存沒(méi)有釋放,久而久之,沒(méi)內(nèi)存可用了。所以C++提供相應(yīng)的構(gòu)造函數(shù)和析構(gòu)函數(shù),這兩種函數(shù)都沒(méi)有返回值。為什么沒(méi)有呢?假設(shè)有的話(huà),應(yīng)該是什么類(lèi)型呢?假設(shè)有的話(huà),如何處理返回值呢?
C中所有的變量都是在程序開(kāi)始的時(shí)候分配內(nèi)存的。C++也可以有這樣的策略,但是分配了內(nèi)存,必須初始化才能使用,所以必須要等到定義之后,調(diào)用了相應(yīng)的構(gòu)造函數(shù)才能使用該對(duì)象。C++反對(duì)使用未定義的內(nèi)存塊,所以,在switch或者goto這種能跳過(guò)定義的地方定義一個(gè)類(lèi)是錯(cuò)誤的。
posted on 2012-05-29 17:20
Dino-Tech 閱讀(155)
評(píng)論(0) 編輯 收藏 引用