C++11新特性之override

1.介绍

        override是C++11引入的特性,用于显式地表明派生类中的成员函数是重写基类中的虚函数。旨在提高代码的可读性和安全性,避免因函数签名不匹配而导致的错误。

        为什么引入override?

        在没有override的情况下,如果派生类中的函数签名与基类的虚函数不匹配(例如参数类型或数量不同),编译器会将其视为一个新的函数,而不是重写基类的虚函数。这种情况下可能导致难以发现的错误。override关键字的引入解决了这个问题:

        (1)显式表明意图:明确告诉编译器这是个重写函数。

        (2)编译时检查:如果函数签名与基类的虚函数不匹配,编译器会报错。

2.使用语法

        在派生类中重写基类的虚函数时,在函数声明后加上override关键字,如下所示。

class Base {
public:
    virtual void func(int x) {
        std::cout << "Base::func(int)" << std::endl;
    }
};

class Derived : public Base {
public:
    void func(int x) override { // 显式重写基类的虚函数
        std::cout << "Derived::func(int)" << std::endl;
    }
};

 3.override的优点

        (1)避免错误:如果派生类的函数签名与基类虚函数不符,编译器会报错。

        (2)提高代码可读性:明确表名派生类中的函数是重写基类的虚函数,便于理解与维护。

        (3)增强代码安全性:防止因拼写错误或参数不匹配导致的意外行为。

4.总结

  • override用于显式表明派生类重写基类的虚函数。

  • 提高了代码的可读性和安全性,避免因函数签名不匹配而导致的错误。

  • 在 C++11 及更高版本中,推荐在重写虚函数时使用override关键字。

  • 结合final(后续介绍)关键字,可以进一步控制类的继承和虚函数的重写行为。

如有错误,敬请指正!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值