C++进阶教程之继承得本质:单继承(一)

本文探讨C++中的单继承,通过汇编视角揭示继承的本质。内容包括:结构体与类的区别、单继承的内存布局、变量重写、父类引用子类的原理以及如何实现父类无损访问子类内容。总结指出,子类继承父类是复制父类成员,理解此点有助于掌握C++继承的核心概念。
摘要由CSDN通过智能技术生成

单继承到底发生了什么

托更了C++得高级教程好久了,今天有空先来更新一章C++得单继承。通过汇编来了解一下C++得继承得本质到底是什么,为啥说子类可以访问父类得非私有成员,而父类却不能访问子类得成员。
首先让我们看一下结构体和类到底有什么区别。
大家都知道C语言中有结构体,C++有类,通过前面两章,大家应该知道了类和结构体没有什么本质得区别。可以说类就是被编译器限制了权限得结构体,那么单继承发生了什么呢。

  • 1、首先让我们看一个结构father
    *在这里插入图片描述
    其反汇编大家应该很清楚,就是在内存中依次存下了1,2,3。
    在这里插入图片描述
    在这里插入图片描述
  • 2、我们再建一个结构体Son,查看其内存布局
  • 在这里插入图片描述
    其内存布局其实也是依次存在相关得值。
    *3、单继承内存布局??
    我们让son继承father内存会发生
实验题目1:班级学生学期成绩管理系统 (1)程序功能简介 灵活运用类的继承、对象成员等机制,设计一个能够实现班级学生学期成绩管理的程序。 (2)程序设计说明 ① 个人信息类CPerson的数据成员有姓名、性别、年龄、身份证号等数据成员,成员函数根据需要自行设计; ② 学生类CStudent从CPerson派生,并增加学号、CCourse对象成员数组(大小至少3个)等数据成员,并根据需要自行设计成员函数,包括能够求解所选修课程的总学分、显示某个学生基本信息和课程信息的成员函数; ③ 课程类CCourse包括课程名、学分、分数、任课老师等数据成员,成员函数根据需要自行设计; ④ 班级类CClass的数据成员有班级名称、班级人数、CStudent对象成员数组(大小由构造函数确定)等。本班级类CClass的对象成员数组需要在构造函数中用new动态分配内存空间,在析构函数中用delete释放。在CClass类中设计包括能够求解最高成绩、最低成绩和平均成绩以及通过学号查找并输出某个学生全部信息(例如Seek())等功能在内的成员函数; ⑤ 构造三十个学生的数据,每个学生都有三门课程成绩,输出并显示这些数据; ⑥ 根据类的需要添加适当的其它成员,编写完整的程序并测试。 (3)程序调试运行 运行程序查看结果,并进行源代码调试和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值