父子俩—继承与派生(上)

本文探讨了C++中的继承和派生概念,包括继承的三种方式:public、private和protected,以及它们对成员访问权限的影响。文章还讨论了构造函数和析构函数在父子类之间的调用顺序,并阐述了派生类与基类之间的赋值兼容规则。
摘要由CSDN通过智能技术生成

抛砖引玉


前面介绍了类,一个类中包含了若干数据成员和成员函数。在不同的类中,数据成员和成员函数是不相同的。但有时两个类的内容基本相同或有一部分相同。假设我们已声明了学生基本数据的类 Student ;其中包括学生的学号、姓名、性别的信息,如果我们还需要用到年龄、家庭住址等信息,就要重新再定义一个学生类。很显然,我们新定义的学生类有相当一部分是原来已有的(学号、姓名、相别),那么是否能利用原来声明的 Student 类作为基础,在加上新的内容即可。C++ 提供的继承机制就很好的解决了这个问题。

继承和派生(概念及关系)


一起来先看一个例子:

class Student
{
public:
    void show()
    {
        cin >> num >> name;
    }
    void display()
    {
        cout << "num: " << num << endl;
        cout << "name: " << name << endl;
    }
    int num;
    int name;
};

class Student1:public Student
{
public:
    void display1()
    {
        cout << "num: " << num << endl;
        cout << "name: " << name << endl;
        cout << "age: " << age << endl;
    }
private:
    int age;
};

可以看出,在 Student1 中并未创建 num 和 name 成员,但依旧可以访问,这就是继承。“继承”就是在一个已存在的类的基础上建立一个新的类。
一个新类从已有类那里获得其已有的特性称为“类的继承”。

通过继承,一个新建子类从已有的父类那里获得父类的特性。换句话说,从已有的类产生一个新的子类,称为类的派生。

继承和派生的关系如下图所示:
这里写图片描述>

概括的讲,派生类是基类的具体化,而基类是派生类的抽象。基类综合了派生类的公共特征,派生类则在基类的基础上增加某些特征。
派生类继承了基类的所有数据成员和成员函数,并可以对成员作必要的增加或调整。一个基类可有多个派生类,一个派生类也可有作为基类再派生出新的派生类。

继承方式分类


在刚才的代码中,可以看出声明派生类的一般形式为:
class 派生类名:[继承方式] 基类名
{
派生类新增加的成员
}

在派生类中,对基类的继承方式可以有 public (公有的)、private(私有的)、protected(保护的)3种。不同的继承方式决定了基类成员在派生类中的访问属性。

  • 继承关系为 public 时:
class Student
{
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值