2023-05-24 继承、虚基类与虚函数

继承、虚基类与虚函数

继承

C++中继承允许一个类继承另一个类的实例和静态属性和方法。

继承的主要特征:

  • 子类扩展了父类的功能
  • 子类复用了父类的代码,减少重复代码
  • 子类可以访问并重写父类的方法

基本语法:

class Derived: access_specifier Base
{
   // Body of derived class 
} 
derived; // Object of derived class
  • Derived: 派生类名
  • Base: 基类名
  • access_specifier: 继承类型,共有三种
    • public: 默认。公共的。允许公共和保护成员继承
    • protected: 允许保护和公共成员继承
    • private: 允许私有成员继承

虚基类

当一个类继承自多个父类时,如果这多个父类中存在同名的数据成员或成员函数,则产生 ambiguity。

为了解决这种情况,C++ 中提供了虚基类的概念。

虚基类的特点:

  • 子类只继承一份父类的数据或者函数
  • 子类可以通过指针或引用访问虚基类

语法:

class Derived: virtual access_specifier Base1, virtual access_specifier Base2
{
   ...
} derived;

使用 virtual 关键字来指定虚基类。

虚函数

虚函数是允许在运行时进行多态的函数。

虚函数的特点:

  • 被 virtual 关键字声明
  • 在派生类中可以被重写
  • 运行时根据对象类型调用对应的函数

语法:

virtual return_type function_name (parameters);

声明虚函数时加上 virtual 关键字。

虚函数可以实现接口以及模板方法模式。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容