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

          導(dǎo)航

          留言簿(1)

          隨筆分類(31)

          文章分類(4)

          收藏夾(21)

          搜索

          •  

          積分與排名

          • 積分 - 30078
          • 排名 - 1390

          最新隨筆

          最新評論

          閱讀排行榜

           
          要點:絕對不應(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不再被當(dāng)成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ù)進(jìn)入到BaseClass的析構(gòu)函數(shù)后,對象就成為一個BaseClass的對象了。
          posted on 2010-07-28 21:37 Dest 閱讀(637) 評論(0)  編輯  收藏 所屬分類: C++
           
          Copyright © Dest Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 翁牛特旗| 北京市| 辽阳市| 腾冲县| 登封市| 陇南市| 枞阳县| 承德县| 天津市| 资阳市| 奈曼旗| 台东市| 沙河市| 垦利县| 通山县| 竹山县| 宾阳县| 会泽县| 高碑店市| 东宁县| 茌平县| 高青县| 沧州市| 桐梓县| 泸溪县| 栾川县| 枣庄市| 屏边| 茶陵县| 山西省| 兴业县| 遵化市| 普格县| 晋城| 贵南县| 昭觉县| 桦川县| 宣恩县| 安庆市| 旬邑县| 互助|