在此參考了,ElliottZC和心晴工做室的博客:html
http://www.cppblog.com/ElliottZC/archive/2007/07/20/28417.html程序員
http://www.cnblogs.com/ms-frank/archive/2008/01/16/1041310.html函數
須要注意的地方:spa
一、定義一個函數爲虛函數,不表明函數爲不被實現的函數。定義他爲虛函數是爲了容許用基類的指針來調用子類的這個函數。指針
二、定義一個函數爲純虛函數,才表明函數沒有被實現。定義他是爲了實現一個接口,起到一個規範的做用,規範繼承這個。類的程序員必須實現這個函數。 code
三、有純虛函數的類是不可能生成類對象的,若是沒有純虛函數則能夠。htm
四、虛函數在多態中間的使用: 多態通常就是經過指向基類的指針來實現的。對象
五、虛基類,保證了只保留一個實例。blog
六、當指向不明是,沒有引入虛函數時,無論引用的實例是哪一個類的當你調用的時候系統會調用左值那個對象所屬類的方法。繼承
A *p; //定義基類的指針 A a; B b; p=&a; p->funPrint(); p=&b; p->funPrint(); //所以輸出都是A的funPrint()函數的內容。