C++的建構子會在宣告class變數時執行,解構子則會在class不再被使用時執行,兩者皆無法像其他函式那樣直接呼叫。雖然看起來定義很單純,但若考慮各種情況,其實還是挺複雜的。
這裡列舉幾種情形:
以上是較單純的情形,特別的是當宣告時若用指定運算做初始化,建構子將不會執行。
這其實就是函式重載(overload)的觀念。
請注意建構子是先父後子,解構子則是先子後父。
寫物件導向程式時,常會因為建構子與解構子的問題而造成錯誤,特別是針對動態配置。因此,弄清楚各種情形下的執行方式是有必要的。
沒有留言:
張貼留言