posts - 134,comments - 22,trackbacks - 0
          關于初始化列表,它在構造函數的函數體之前執行。
          關于繼承,子類的構造函數在自身函數體執行之前調用父類的構造函數,子類的析構函數會在自身的函數體執行之后調用父類的析構函數。
          關 于多態,有虛函數的類的對象中會在最前面多出4個字節來作為虛表指針,父類的構造函數會設置對象的虛表指針指向父類的虛函數表,然后這個類的構造函數會重 新設置對象的虛表指針指向這個類的虛函數表,這個類的析構函數會再次設置對象的虛表指針指向這個類的虛函數表,最后調用父類的析構函數又會重新設置對象的 虛表指針指向父類的虛函數表,所以在構造和析構函數中即使調用虛函數也不會有多態發生。但是構造完畢之后析構之前,調用虛函數則會通過對象的虛表指針找到 虛函數表來調用,多態可以正常工作。
          關于new/delete,new是先分配空間再調用構造函數,delete會先調用析構函數再釋放空間。如果是虛析構,看下一條。
          關于虛析構,實際上析構不是虛函數,用一個虛函數scalar_deleting_destructor來替代,它會先調用析構函數,然后根據傳入的參數是否(最低位)是1來決定是否用delete釋放空間。
          posted on 2010-08-06 12:58 何克勤 閱讀(259) 評論(0)  編輯  收藏 所屬分類: C/C++
          主站蜘蛛池模板: 钦州市| 屯昌县| 渝中区| 德州市| 榆社县| 贵定县| 泗洪县| 肥城市| 工布江达县| 西华县| 儋州市| 江川县| 三台县| 南岸区| 犍为县| 通江县| 连城县| 延吉市| 松江区| 巴彦淖尔市| 武冈市| 多伦县| 新郑市| 沁源县| 会东县| 溧阳市| 林周县| 锡林浩特市| 砚山县| 商都县| 项城市| 哈巴河县| 东山县| 广安市| 吴堡县| 望都县| 漳州市| 绥化市| 遂川县| 江北区| 利川市|