虚函数中的默认参数

默认参数是静态绑定的,而虚函数是动态绑定的。

默认参数的使用要看指针或者引用本身的类型,而不是对象的类型

#include <iostream> 
using namespace std; 

class Base 
{ 
    public: 
        virtual void fun ( int x = 10 ) 
        { 
            cout << "Base::fun(), x = " << x << endl; 
        } 
}; 

class Derived : public Base 
{ 
    public: 
        virtual void fun ( int x=20 ) 
        { 
            cout << "Derived::fun(), x = " << x << endl; 
        } 
}; 


int main() 
{ 
    Derived d1; 
    Base *bp = &d1; 
    bp->fun();  // 10
    return 0; 
} 

 

posted @ 2022-01-26 13:34  Wangtn  阅读(353)  评论(0编辑  收藏  举报