虚函数与作用域

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了虚函数与作用域相关的知识,希望对你有一定的参考价值。

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

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

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

};

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

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

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

以上是关于虚函数与作用域的主要内容,如果未能解决你的问题,请参考以下文章

为何需要虚函数 直接对象名加作用域来调用子类父类爷类的函数不就行了 为啥

JavaScript 作用域 与 作用域链

C++-继承-菱形继承-菱形虚拟继承-虚函数表

JS 作用域及作用域链

JS 作用域及作用域链

重载重写隐藏