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++
          主站蜘蛛池模板: 闽侯县| 阿拉善左旗| 宣威市| 胶南市| 余江县| 靖江市| 奎屯市| 唐河县| 博白县| 久治县| 宿迁市| 如皋市| 连城县| 阜宁县| 河曲县| 柳河县| 汾阳市| 隆林| 中宁县| 嘉义县| 博罗县| 黄浦区| 黄龙县| 栖霞市| 鸡泽县| 盐源县| 安达市| 孝感市| 微博| 麻城市| 岗巴县| 嵊州市| 南华县| 星座| 安溪县| 寿宁县| 建水县| 恩施市| 买车| 德兴市| 全州县|