2013年12月29日 星期日

在Constructor 裡呼叫 Virtual Function

因為在constructor裡

subclass的成分並未完全實現

(包括 : vtable vptr等與virtual finction相關的隱藏變數)

所以完成的部分會是Base class的成分

所以程式並不會向你所想的一樣

不會去執行subclass所override的virtual function

而是會去執行base class 所定義的版本

PS: c++11 有override這個key word可以用
     
      請大家善加利用,程式碼會好看很多

0 意見:

張貼留言