多重继承_C++ | 继承和派生

本文详细讲解了C++中的继承机制,包括继承的基本概念、单一继承和多重继承。重点阐述了基类成员的初始化、二义性及其解决办法(支配规则),并介绍了虚基类的概念。此外,还讨论了访问基类成员、赋值兼容等关键知识点。
摘要由CSDN通过智能技术生成

内容

1. 继承的基本概念

2. 单一继承

3. 多重继承

4. 基类成员的初始化

5. 二义性和支配规则

6. 虚基类

7. 访问基类成员和访问对象成员的成员

8. 赋值兼容


一 继承的基本概念

系统提供了相当多的已定义好的基类,用户可以根据具体的应用,在已有类的基础上构架新类,在派生类中,可以直接使用父类部分的代码,但却不需要重新编写父类的代码。这样可以加速软件开发的速度,保障软件开发的质量。继承提供了在已有类的基础上开发出新类的机制,可以节省重复代码的编写工作,是软件重用的基础。

已知一个类A,对A类加以扩展,即增加一些属性和行为,构成一个新类B,此时B类将A类已有的属性和行为继承下来。称类 B 继承了 A ,或称类 A 派生了 B 。A:父类,基类,B:子类,派生类。

c5bf2450a688c8c533eafdbb42ba7855.png
派生类是对基类的扩充

在C++中,有两种继承方式:单一继承和多重继承。

dcce9af2ffde017b0bc707bb1f09fbe8.png
单一继承

0424cc1e0989d6d8dfbb113308147f24.png
多重继承

二 单一继承

9e528121fdcedd1aaeaa0ec31857d4ce.png

1. 定义派生类的一般格式:

class <派生类名>: <继承方式> <基类名>
{
    
 [private: // 私有成员说明
 ...]
 [public: // 公有成员说明
 ...]
 [protected: // 保护成员说明
 ...]
} ;

继承方式:

  • public 公有继承(派生)
  • private 私有继承(派生)
  • protected 保护继承(派生)

2. 公有继承(派生)

class A
{
     ......
 };
class B: public A // 公有继承A
 {
     ......
 };

2308391150b6a7dbd44978e1e57e00c7.png
访问权限

例:

class A
{
     private: 
    int ax;
protected: 
    int ay;
public: 
    int az;
    void f1( ){...};
    int Getax( ){
    return ax;}
    void Setax( int x ) {
    ax = x; }
};
class B: public A
{
     private: 
    int bx;
protected: 
    int by;
public: 
    int bz;
    void f2( ){...};
    float f3( ){...};
};

相当于:

class B: {
     
private: int ax;  //在B类内部不能直接访问
private: 
    int bx;
    protected: 
    int ay;
    int by;
public: 
    int az;
    int bz;
    void f1( ){...};
    int Getax( ){...} //可通过 Getax( )、Setax( )访问A类的私有成员 ax 的值
    void Setax( int x ) {
    ax = x; }
    voi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值