LALA  
          日歷
          <2010年7月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          留言簿(1)

          隨筆分類(31)

          文章分類(4)

          收藏夾(21)

          搜索

          •  

          積分與排名

          • 積分 - 29910
          • 排名 - 1389

          最新隨筆

          最新評論

          閱讀排行榜

           
          要點:絕對不應(yīng)該在構(gòu)造函數(shù)和析構(gòu)函數(shù)中調(diào)用虛函數(shù)。

          Derived Class對象內(nèi)的Base Class成分會在Derived Class自身成分被構(gòu)造之前構(gòu)造完成。如果Base Class構(gòu)造函數(shù)中有虛函數(shù)(virtual function),該virtual function絕對不會下降到Derived Class層中,而是直接調(diào)用Base Class中該函數(shù),通俗的說,即——在Base Class構(gòu)造時,virtual function不再被當成virtual function。

          這是因為,在Base Class構(gòu)造期間,對象的類型是Base Class而不是Derived Class。不只是虛函數(shù)會被編譯器解析至Base Class中,若使用運行期類信息(runtime type information,例如dynamic_cast和typeid),也會把對象視為Base Class類型。同樣這也適合于析構(gòu)函數(shù)。一旦由Derived Class的析構(gòu)函數(shù)進入到BaseClass的析構(gòu)函數(shù)后,對象就成為一個BaseClass的對象了。
          posted on 2010-07-28 21:37 Dest 閱讀(632) 評論(0)  編輯  收藏 所屬分類: C++
           
          Copyright © Dest Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 舒城县| 呼伦贝尔市| 忻城县| 开鲁县| 嘉定区| 武宁县| 泰来县| 大埔区| 伊春市| 大关县| 泽库县| 启东市| 卢氏县| 开阳县| 健康| 德兴市| 沅陵县| 炉霍县| 苍溪县| 紫金县| 新田县| 宜兴市| 浮山县| 达日县| 三原县| 紫金县| 蒙城县| 银川市| 阿克陶县| 凤翔县| 怀化市| 绥芬河市| 高雄市| 全椒县| 镇坪县| 溧阳市| 沁阳市| 海淀区| 依安县| 莱阳市| 应城市|