【C++】——继承方式

本文详细介绍了C++中的继承机制,包括单继承和多继承的概念,代码示例展示了继承的方式。重点分析了继承权限与访问限定符的关系,以及派生类构造和析构函数的调用次序。此外,还讨论了继承体系中的作用域、赋值兼容规则以及对象模型,包括菱形继承和虚拟继承的情况。
摘要由CSDN通过智能技术生成

一、 继承的概念相关:

1、概念
在C++语言中,一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承;从多个基类派生的继承称为多继承。
继承机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能。这样产生的新类称派生类。
2、格式:


3、作用:
1、)代码复用
2、)实现多态

二、代码分析继承

1、一段简单的代码展示继承

class Base
{
private:
    int _pri;
protected:
    int _pro;
public:
    int _pub;
};

class Derived:public Base
{
private:
    int _priD;
protected:
    int _proD;
public:
    int _pubD;
};
int main()
{
    cout << sizeof(Derived) << endl;//24
    return 0;
}

有没有继承下来,看派生类的大小即可
这里写图片描述

大小为24,即继承下来了,
(1)派生类继承下来基类的公有成员变量也是公有的;
(2)基类的私有成员在基类里可以访问,但在派生类里无法直接访问,是基类里的隐私
(3)将基类里保护的成员继承下来,要么是私有的,要么是保护的——问题?哪一个呢?下面我们就一起研究一下
2、继承的方式
猜测一下上面的继承问题
猜测:保护(基类)———private, protected(派生类)
假设:protected—派生一层

class Base
{
public:
    void SetValue(int pri, int pro, int pub)
    {
        _pri = pri;
        _pro = pro;
        _pub = pub;
    }
private:
    int _pri;
protected:
    int _pro;
public:
    int _pub;
};

class Derived:public Base
{
public:
    void SetValueD(int pri, int pro, int pub)
    {

    }
private:
    int _priD;
protected:
    int _proD;
public:
    int _pubD;
};

//验证公有的继承方式
class D:public Derived
{
public:
    void FunTest()
    {
        _pro = 5;
        _proD = 10;
    }
};
int main()
{
    cout << sizeof(Derived) << endl;
    Derived d;
    d.SetValue(10, 20, 30);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值