C++继承知识点滴

写在前面

继承是c++语言一个重要的机制,该机制自动地为一个类提供来自另一个类的操作和数据结构,这使得程序员只需在新类中定义已有的类中没有的成分来建立一个新类。

什么是继承

继承是类的重要特性。A类继承B类,我称B类为“基类”,A为“子类”。A类继承了B类之后,A类就具有了B类的部分成员,具体得到了那些成员,这得由两个方面决定:
- 继承方式
- 基类成员的访问权限

#include<iostream>
using namesprace std;
class Base//基类
{
private:
    int _b;
public:
    Base(int b)
    :_b(b)
    {}
    void FunTest1()
    {
        cout<<"Base::FunTest1()"<<endl;
    }
    ~Base()
    {}
};
//共有继承public/保护继承protected /私有继承private
class Dir:public Base//子类
{
private:
    int _d;
public:
    Dir(int b,int d):Base(b)
    :_d(d)
    {}
    void FunTest2()
    {
        cout<<"Dir::FunTest2()"<<endl;
    }
    ~Dir()
    {}
};
int main()
{
    Base b(12);
    Dir d(13,24);
    b.FunTest1();
    d.FunTest2();
    return 0;
}

知识点

@1基类公有成员,子类中继承为自己的保护成员,在派生类可以访问,在外部不可以访问

@2基类保护成员,子类中继承为自己的保护成员,在派生类可以访问,在外部不可以访问

@3基类私有成员,子类一样不可以访问基类的私有成员。

私有继承(private)

私有继承方式的,就是在继承时,把protected变成private,它需要注意的事项为:

(1) 基类公有成员,子类中继承为自己的私有成员,在派生类可以访问,在外部不可以访问。
(2). 基类保护成员,子类中继承为自己的私有成员,在派生类可以访问,在外部不可以访问。
(3) 基类私有成员,子类一样不可以访问基类的私有成员,

三种继承方式比较

这里写图片描述

从上面的结果来看,私有继承和保护继承作用完全一样。仔细一想其实还是有区别,区别是如果派生类再一次去派生其它类时,对于刚才的私有继承来说,再派生的类将得不到任何成员。而对于刚才的保护继承,仍能够得到基类的公有和保护成员。

派生类的构造

派生类是可以访问基类保护的数据成员,但是还有一些私有数据成员,派生类是无法访问的,并且为提醒类的独立性,我们还是希望通过调用基类的成员函数去初始化这些成员变量,所以派生类是通过调用基类的构造函数,实现对成员变量的初始化。具体代码示例,见上。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值