小工具知识网

当前位置: 首页 > 行业知识 > [C++核心编程-09]----C++类和对象之继承

行业知识

[C++核心编程-09]----C++类和对象之继承

2026-11-08 04:19:26 来源:互联网转载

欢迎来到技术探索的奇幻世界‍

个人主页:@一伦明悦-CSDN博客

✍ 作者简介: C++软件开发、Python机器学习爱好者

️ 互动与支持:评论      点赞      收藏     关注+

如果文章有所帮助,欢迎留下您宝贵的评论,点赞加收藏支持我,点击关注,一起进步!​​​​​​​

目录

 前言       

正文       

01-继承简介        

02-继承的基本用法        

03-继承方式        

04-继承中的对象模型        

 05-继承中的构造和析构顺序       

06-继承中同名的成员处理       

07-继承中的同名静态成员处理       

总结            


前言       

        在面向对象编程中,继承是一种重要的概念,它允许一个类(称为子类或派生类)从另一个类(称为基类或父类)继承属性和行为。这意味着子类可以使用基类中已有的数据和行为,而无需重新编写,从而实现代码重用和扩展的目的。

        继承的基本原则包括:

         代码重用:继承允许子类继承父类的成员变量和成员函数。这意味着子类可以重用父类的功能,而不必重新实现相同的功能,从而减少了代码的重复性。

        代码扩展:子类可以在继承了父类的基础上添加新的成员变量和成员函数,以满足特定需求或扩展功能。这种灵活性使得程序的设计更加模块化和可扩展。        

        多态性:继承也为多态性提供了基础。子类可以重写(覆盖)父类的成员函数,从而在不同的上下文中表现出不同的行为。这种多态性使得代码更具灵活性和可维护性。

        继承链:在继承中可以形成类的层次结构,即继承链。子类可以进一步作为其他类的基类,从而形成更深层次的继承关系。这种继承链的存在使得代码组织更加清晰,也更容易理解和维护。 在 C++ 中,继承通过关键字 class 后面的 : 来实现,例如 class DerivedClass : public BaseClass,其中 DerivedClass 是派生类,BaseClass 是基类。C++ 中的继承支持多种类型的继承,包括公有继承、保护继承和私有继承,通过不同的访问说明符来控制派生类对基类成员的访问权限。

正文       

01-继承简介        

        在 C++ 中,继承是一种重要的概念,它允许一个类(称为子类或派生类)从另一个类(称为基类或父类)继承属性和行为。这种机制使得代码重用和扩展变得更加容易和灵活。

        继承的基本概念包括以下几点:

        派生类继承基类的成员:派生类可以继承基类的成员变量和成员函数。这意味着派生类可以使用基类中已有的数据和行为,而无需重新编写。

        访问控制:派生类可以选择性地改变从基类继承的成员的访问控制。C++ 中的访问控制有三种:public、protected 和 private。默认情况下,基类的成员是私有的,但是通过使用不同的访问说明符(public、protected、private),可以调整派生类对基类成员的访问权限。

        派生类可以添加新的成员:派生类可以添加新的成员变量和成员函数,以满足特定需求或扩展功能。

        下面是一个简单的 C++ 代码示例,演示了继承的基本用法:在这个例子中,我们有一个基类 Shape,其中包含 width 和 height 两个成员变量以及对它们进行设置的成员函数。然后,我们定义了一个派生类 Rectangle,它继承了 Shape 类。Rectangle 类添加了一个新的成员函数 getArea(),用于计算矩形的面积。在 main() 函数中,我们创建了一个 Rectangle 类的对象 rect,并使用基类的成员函数设置它的宽度和高度。最后,我们调用 getArea() 函数来计算矩形的面积并输出结果。

#include using namespace std;// 基类class Shape {public:    void setWidth(int w) {        width = w;    }    void setHeight(int h) {        height = h;    }protected:    int width;    int height;};// 派生类class Rectangle: public Shape {public:    int getArea() {        return (width * height);    }};int main() {    Rectangle rect;    rect.setWidth(5);    rect.setHeight(7);    // 访问基类的成员    cout 

上一篇:揭秘今日头条源码,揭秘新闻推荐背后的技术奥秘

下一篇:宝塔面板拼音输入法攻略,字母打法轻松掌握!