1. C++对于函数成员的继承主要有三种:

    只继承接口,不继承实现;

    同时继承接口和实现,同时允许覆写实现;

    继承接口和实现,同时不允许对实现进行覆写.

2. 对于public继承,成员函数的接口应该总是被继承(由于is-a关系的存在),其中:

    pure-virtual函数的目的只是为了使派生类继承函数接口;

    impure-virtual(虚但非纯虚)函数的目的是既允许派生类继承接口和实现,又可以重写实现.

    non-virtual函数的目的是令派生类继承函数的接口以及一份强制实现.(如果想要重写,那么之前就应该设为virtual函数)

    public继承中,基类成员函数的种类应该遵循以上原则定义.

3. virtual函数既允许继承实现又允许重写实现的目的有时候会带来危险性,例如:

class Base{
public:
    virtual fun(){...}
    ...
private:
    ...
}
class Derived:public Base{
public
    ...
private:
    ...
}
View Code

相关文章:

  • 2021-11-19
  • 2022-12-23
  • 2022-02-08
  • 2022-01-24
  • 2021-11-24
  • 2021-12-21
  • 2021-04-29
  • 2021-11-25
猜你喜欢
  • 2021-11-07
  • 2021-10-27
  • 2022-01-12
  • 2021-12-04
  • 2022-01-06
  • 2022-12-23
相关资源
相似解决方案