当前位置 博文首页 > 悦峰原创博客:C++ Virtual详解

    悦峰原创博客:C++ Virtual详解

    作者:[db:作者] 时间:2021-08-15 13:33

    ??? Virtual是C++ OO机制中很重要的一个关键字。只要是学过C++的人都知道在类Base中加了Virtual关键字的函数就是虚拟函数(例如下面例子中的函数print),于是在Base的派生类Derived中就可以通过重写虚拟函数来实现对基类虚拟函数的覆盖。当基类Base的指针point指向派生类Derived的对象时,对point的print函数的调用实际上是调用了Derived的print函数而不是Base的print函数。这是面向对象中的多态性的体现。(关于虚拟机制是如何实现的,参见Inside the C++ Object Model ,Addison Wesley 1996)

    class Base
    {
    public:Base(){}
    public:
           virtual void print(){cout<<"Base";}
    };
     
    class Derived:public Base
    {
    public:Derived(){}
    public:
           void print(){cout<<"Derived";}
    };
     
    int main()
    {
           Base *point=new Derived();
           point->print();
    } 
    //---------------------------------------------------------cs
    下一篇:没有了