C++11 override

本文详细解析了C++11中的关键字override的作用及其使用规则。文章通过具体的示例代码展示了如何正确地使用override来重写基类中的虚函数,并指出了常见的错误用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先来看一段话:

override: Specifies that a virtual function overrides another virtual function. In a member function declaration or definition, override ensures that the function is virtual and is overriding a virtual function from the base class. The program is ill-formed (a compile-time error is generated) if this is not true.

override是C++11中的一个继承控制关键字,override确保一个函数为虚并重写基类的虚函数。

声明了该关键字,则编译器会检查基类虚函数和派生类该虚函数的签名匹配与否问题,如果签名不匹配,则编译器会发出错误信息。

举个例子:

class base
{
public:
    virtual void func1();
    virtual void func2() const;
    vitrual void func3(int a);
    void func4(); 
    base* func5();  
};

class derive : public base 
{
public:
    virtual void func1() override; // virtual可写可不写,推荐不写   编译不通过-基类没有同名虚函数
    virtual void func2() override;  // 编译不通过-常量性不一致
    virtual void func3(double a) override;  // 编译不通过-参数类型不一致
    void func4() override;  // 编译不通过-不是虚函数
    derive* func5() override; // 注意: 编译通过了!! vs2015
};

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值