non-trivial destructor 和 trivial destructor

trivial理解爲無用的,無意義的;

non-trivial自然就是有實際意義的如果一個class沒有定義destructor,如果這個class中的一個數據成員擁有destructor,那麼編譯器會自動合成出這個class的destructor來.在這個class的合成的destructor裏調用那個數據成員的destructor,這個合成的 class的destructor是有意義的,即是non-trivial的. 如果這個class沒有上述的那種數據成員,那麼編譯器並不會合成出一個destructor來,這時,可以“理解”爲這個destructor是trivial的,當然實際上destructor是不存在的.比如 class A { int i; int j; } 根本沒有必要去調用析構函數,所以這時候,編譯器對delete基本上不會生成析構的代碼。 non trivial destructor則反之

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章