4.6 继承

4.6 继承

C++中的继承是一种面向对象编程的重要特性,允许一个类(派生类/子类)使用另一个类(基类/父类)的成员和行为。继承提供了代码重用、层次结构和多态性的机制。

继承的语法,简单的描述如下

class A : public B;

A 类称为子类 或 派生类

B 类称为父类 或 基类

派生类中的成员,包含两大部分:

一类是从基类继承过来的,一类是自己增加的成员。
从基类继承过过来的表现其共性,而新增的成员体现了其个性。

4.6.2 继承方式

继承方式一共有三种:
公共继承
保护继承
私有继承

1.公有继承(Public Inheritance):

  • 使用 public 关键字,基类的公有成员和保护成员在派生类中仍然是公有和保护的,基类的私有成员在派生类中不可访问。

  • 示例:

    class A {
    public:
        int m_a;
    protected:
        int m_b;
    private:
        int m_c;
    };
    
    class B : public A {
        //在B类中A类中的成员属性不变。在B类中可以访问A类的public和protected成员,
        // 但不能访问A类中的private成员
    public:
        void fun(){
            
    		m_a; //可访问 public权限
    		m_b; //可访问 protected权限
    		//m_c; //不可访问     
        }
    
    };
    
    

    2.私有继承(Private Inheritance):

    使用 private 关键字,派生类的所有成员在派生类中都变为私有的,基类的私有成员在派生类中不可访问。示例:

    class A {
    public:
        int m_a;
    protected:
        int m_b;
    private:
        int m_c;
    };
    
    class B : private A {
        // 在B类中,A类中的所有成员都变为private。在B类中可以访问A类的public和protected成员,
        // 但不能访问A类中的private成员
    public:
    void func()
    {
    	m_a; //可访问 private权限
    	m_b; //可访问 private权限
    	//m_c; //不可访问
    }   
      
    };
    
    

保护继承(Protected Inheritance):

  • 使用 protected 关键字,派生类的公有和保护成员在派生类中仍然是保护的,基类的私有成员在派生类中不可访问。

    示例代码:

    class A {
    public:
        int m_a;
    protected:
        int m_b;
    private:
        int m_c;
    };
    
    class B : protected A {
        // 在B类中,A类中的所有成员都变为protected。在B类中可以访问A类的public和protected成员,
        // 但不能访问A类中的private成员
    public:
        void fun(){
            
    		m_a; //可访问 protected权限
    		m_b; //可访问 protected权限
    		//m_c; //不可访问     
        }  
    };
    
    void fun1(){
    	//对于B类从A类中使用protected继承,A类中的成员属性都变为protected属性
        A a;
        a.m_a;//不能访问,因为属性为protected
    }
    
    

下面图示就解释了上面的代码案例。

image-20231221211200330

未完待续。。。。


  • 25
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值