一张图让你明白C++的重载(overload),重写(override)与重定义(redefine)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/z914022466/article/details/73070594

一张图知道重载,重写与重定义

#include <iostream>
using namespace std;


class Base
{
private:
    int x;
public:
    virtual void mf1()
    {
        cout<<"Base: mf1()"<<endl;
    }
    //overload
    virtual void mf1(int)
    {
        cout<<"Base: mf1(int)"<<endl;
    }
    virtual void mf2()
    {
        cout<<"Base: mf2()"<<endl;
    }
    void mf3(double)
    {
        cout<<"Base: mf3(double)"<<endl;
    }
};

class Derived: public Base
{
public:
    //override
    virtual void mf1()
    {
        cout<<"Derived: mf1()"<<endl;
    }
    //redefine
    void mf3()
    {
        cout<<"Derived: mf3()"<<endl;
    }


};

int main()
{
    Derived d;
    int x = 100;
    d.mf1();
    //d.mf1(x);
    d.mf2();
    d.mf3();
    //d.mf3(x);

}

关于重写的一道思考题,大家可以想一想
思考

猜你喜欢

转载自blog.csdn.net/z914022466/article/details/73070594