虚函数与作用域

  1 基类与派生类中的虚函数必须有相同的参数列表,假如基类与派生类的虚函接受的实参不同,我们就无法通过基类的引用或者指针调用派生类的虚函数。

class Base{
public:
    virtual int fun();   //基类中定义的虚函数
};

class Derived : public Base {
    int fun(int);    

};

  因为参数不同,所以Derived这个时候有两个函数,一个是Base继承而来的虚函数fun(),一个是Derived()定义的fun(int),

这和我们的原意是不合的。

  所以基类与派生类的虚函数必须有相同的形参列表,否则我们无法通过基类的指针或引用调用派生类的虚函数。

posted @ 2017-11-11 18:32  fupeirui  阅读(155)  评论(0编辑  收藏  举报