【C++】---继承

继承的概念与定义

继承是面向对象编程三大特性之一,是一种可以使代码复用最重要的手段,在原有类特性的基础上进行扩展,产生新的类。例如人和学生的关系,学生是一个人,那么人所有的特性学生都有,比如人有姓名、身份证号码、性别等,这些学生也有具备。在此基础上学生还有额外的特性,例如学号,班级

为了方便的去创建类,因此我们可以在人这个类的基础上去创建出新的学生类,当我们使用继承时,那么在创建学生类时就不用再去定义人这个类的所有特性

class Person
{
   
public:
    void Print()
    {
   
    	cout << "name:" << _name << endl;
    	cout << "age:" << _age << endl;
    }
protected:
    string _name = "peter"; // 姓名
    int _age = 18; // 年龄
};

class Student : public Person
{
   
    protected:
    int _stuid; // 学号
};

像上面的代码就是使用了继承去创建学生类,那么当我们实例化对象之后,学生类的对象就也会包含了人类的所有成员

image-20230406124028551

像这种继承我们就可以称人的类为父类或者基类,学生这个类就称为子类或者派生类。

主要注意:友元关系不能继承,当基类定义了静态成员那么整个继承体系里面只有一个这样的成员

继承的定义格式

image-20230406124425518

继承方式可以有三种,也就是我们所知道的三种访问限定方式。那么不同的继承方式也就意味着,派生类能够继承基类的不同特性

公有继承时,派生类可以访问基类除私有成员外的所有成员

保护继承时,只能访问基类中的保护成员

私有继承时,基类中的所有成员都不能访问

基类中的私有成员不论什么继承方式都不可以访问

父类和子类的对象赋值转换

派生类对象 可以赋值给 基类的对象 / 基类的指针 / 基类的引用 ,也就是说可以用基类的指针或者引用去指向派生类的对象,要注意基类指向派生类可以,但是派生类不可以指向基类。这种方式可以形象的称为切片

int main() {
   
    Student s
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值