zoukankan      html  css  js  c++  java
  • 覆盖虚函数和覆盖普通成员函数的区别

    #include <iostream>
    using namespace std;
    
    class CBase
    {
    public:
        virtual void PureVirtualMethod() = 0;
        virtual void VirtualMethod()
        {
            cout << "Base version of virtual method" << endl;
        }
        void CommonMethod()
        {
            cout << "Base version of common function" << endl;
        }
    };
    
    class CDerived : public CBase
    {
    public:
        void PureVirtualMethod()
        {
            cout << "Derived version of pure virtual method" << endl;
        }
        void VirtualMethod()
        {
            cout << "Derived version of virtual method" << endl;
        }
        void CommonMethod()
        {
            cout << "Derived version of common method" << endl;
        }
    };
    
    
    int main()
    {
        CDerived testBase = CDerived();
    
        CBase *b;
        b = new CDerived();
        b->PureVirtualMethod();
        b->CommonMethod();
        b->VirtualMethod();
    }

    输出:

    Derived version of pure virtual method

    Base version of common function

    Derived version of common method

    类的继承中,对于虚函数的override与直接override是有区别的。

  • 相关阅读:
    Eclipse 的单步调试
    CALayer快速入门
    UITableView快速入门
    iOS程序启动原理
    iOS触摸事件
    UITableViewCell重用和性能优化
    Autolayout
    iOS适配
    NSTimer
    UIScrollView
  • 原文地址:https://www.cnblogs.com/bluecoffee/p/3268949.html
Copyright © 2011-2022 走看看