C++11新特性——1.4-1.5 final和override

发布时间 2023-08-18 21:23:01作者: 我会变强的
  • 1.4 final

原文:https://subingwen.cn/cpp/final/

  • 总结:

1. final 限制某个类不能被继承,或限制某个虚函数不能被重写

2. final 修饰 虚函数 或者 类

3. final 关键字写到 虚函数 或 类 后面

class Base
{
public:
    virtual void test()
    {
        cout << "Base class...";
    }
};

class Child : public Base
{
public:
    void test() final   // ★★★
    {
        cout << "Child class...";
    }
};

class GrandChild final: public Child    // ★★★
{
public:
    // 语法错误, 不允许重写
    //void test()
    //{
    //    cout << "GrandChild class...";
    //}
};

 

  • 1.5 override

原文:https://subingwen.cn/cpp/final/

  • 多态发生的三个条件

1. 有继承关系

2. 子类重写父类虚函数

3. 父类指针或引用指向子类对象

 

override 保证重写虚函数名字的正确性;和final一样,override 要写到方法后面

(〃>_<;〃)(〃>_<;〃)(〃>_<;〃)