通常咱們說虛函數,它的訪問級別都是public的,用類對象能夠直接調用,這樣就能夠實現運行時的類型綁定,那若是咱們將虛函數私有化會出現什麼狀況呢?是否是很蛋疼的想法。
#include<iostream> class Derived; class Base { public: void doFun() { fun(); } private: virtual void fun() { std::cout << "Base Fun"; } }; class Derived : public Base { private: virtual void fun() { std::cout << "Derived Fun"; } }; int main() { Base *ptr = new Derived; ptr->doFun(); return 0; }
結果是 Derived Fun
可見,私有函數的虛方法,調用的時候和public沒啥區別,可是不多這麼用。