派生类重写方法

#include <iostream>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

class Super
{
    public:
        Super();
        virtual void someMether();
    protected:
        int mPritectedInt;
    private:
        int mPrivateInt;
};

class Sub : public Super
{
    public:
        Sub();
        void someMether() override;    //重写父类的someMether方法 
        void someOtherMether();
    private:
        double mPrivateDouble;
};

Super::Super()
:mPritectedInt(0)
,mPrivateInt(0)
{
    
}
void Super::someMether()
{
    std::cout << "Super's someMether\r\n" << std::endl;
}

Sub::Sub()
:mPrivateDouble(0.0)
{
    
}
void Sub::someMether()
{
    std::cout << "Sub's someMether" << std::endl;
}

void Sub::someOtherMether()
{
    std::cout << "Sub's someOtherMether" << std::endl;
}

int main(int argc, char** argv) 
{
    Super super;
    Sub sub;
    sub.someMether();
    sub.someOtherMether();
    return 0;
}

首先声明的时只有在父类的方法前写上virtual关键字,派生类才能重写这个方法,

建议在派生类的后边写上override,这并非是关键字,但是却起着关键字的作用,

override由两个作用:

1.在函数比较多的情况下可以提示读者某个函数重写了基类虚函数(表示这个虚函数是从基类继承,不是派生类自己定义的);

2.强制编译器检查某个函数是否重写基类虚函数,如果没有则报错。

 

转载于:https://www.cnblogs.com/boost/p/10338087.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值