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