news 2026/6/10 14:37:16

继承与派生

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
继承与派生

我这一个月在课堂上学习了C语言继承和派生

最近一个月的课堂时间,几乎都在和C语言的“继承与派生”死磕。一开始看到这两个词,我满是疑惑——C语言不是面向过程的语言吗?怎么会涉及到面向对象里的概念?深入学习后才明白,原来我们学的是用C语言的结构体和函数指针,模拟实现面向对象的继承与派生思想,这趟学习之旅,可算是收获满满。

在课堂上,老师首先点明了核心:继承的本质是代码复用。当我们需要定义多个具有相同属性和行为的结构体时,不需要重复编写相同的字段和函数,而是可以定义一个“基类”结构体,再让其他“派生类”结构体包含基类结构体,以此实现属性和方法的复用。

我们先定义一个Person基类结构体,包含姓名、年龄属性,以及一个展示信息的函数指针,再编写对应的成员方法,用来输出姓名和年龄信息。当需要定义Student结构体时,不需要再写姓名、年龄这些字段,只需要在Student结构体中嵌入Person结构体,再添加学号、专业这些特有属性即可,这就是派生的过程。

针对Student结构体,我们还需要编写对应的展示方法,在这个方法里,先调用Person结构体的展示函数输出基础信息,再补充输出学号和专业这些子类特有信息。在main函数中完成初始化和函数指针绑定后,调用展示方法,就能同时输出父类和子类的信息,完美体现代码复用的优势。

学习过程中,我也踩了不少坑。比如一开始忘记将派生类对象的父类部分地址传给函数,导致程序运行时出现段错误;还有一次混淆了函数指针的赋值顺序,使得子类无法正确调用父类的方法。后来在老师的指导和同学的讨论下,才慢慢理清逻辑:派生类调用父类方法时,必须传递父类成员的地址,而不是派生类对象的整体地址。

除了基础的继承实现,课堂上还拓展了单继承和多层继承的内容。比如在Student的基础上,再派生一个Graduate研究生结构体,添加研究方向等属性,进一步体会层层复用的便捷性。

这一个月的学习,让我彻底打破了“C语言只能面向过程”的固有认知。原来通过巧妙的代码设计,C语言也能实现面向对象的核心思想。不仅如此,我还深刻理解了“代码复用”的意义——这不仅能减少冗余代码,更能让程序结构更清晰、后期维护更方便。

接下来,我打算尝试用这种思想写一个小型的管理系统,把学到的知识真正运用到实践中去。相信在不断的练习中,我能把继承与派生的知识点掌握得更扎实。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/6 1:33:16

使用 Docker 的 Node.js(附:三种 Node.js 环境详细对比)

本文介绍了在Docker容器中运行Node.js应用的核心概念和优势。与传统本地安装相比,Docker化的Node.js具有环境一致性、多版本共存和项目隔离等优点。文章详细说明了开发模式、Docker Compose配置等典型工作流,并提供了创建Docker化Node项目的具体操作示例…

作者头像 李华
网站建设 2026/6/10 9:42:45

YOLOv8能否识别古代碑文?石刻文献整理助手

YOLOv8能否识别古代碑文?石刻文献整理助手 在博物馆的修复室里,一位研究员正对着一块唐代碑刻照片逐字圈画——风化的字迹模糊不清,裂纹与苔藓交织成网,手动标注耗时数小时却仍难保准确。这样的场景,在文化遗产数字化进…

作者头像 李华
网站建设 2026/6/9 23:32:13

三极管开关电路原理实战:通过波形理解响应延迟

三极管开关电路实战:从波形看透响应延迟的本质 在嵌入式系统和硬件设计的世界里,我们常以为“高电平导通、低电平关断”是理所当然的事。可当你真正用示波器抓一下信号,却发现—— 输出明明该断开了,却还在拖着尾巴慢慢下降&…

作者头像 李华
网站建设 2026/6/10 9:46:05

YOLOv8结合脑机接口:视觉关注点与神经信号对应研究

YOLOv8结合脑机接口:视觉关注点与神经信号对应研究 在认知科学和人机交互的交汇处,一个关键问题始终萦绕:我们“看到”的,是否就是我们真正“注意”到的?传统方法依赖眼动追踪或主观报告来推断注意力,但这些…

作者头像 李华
网站建设 2026/6/10 9:46:35

九牧的韧性增长:从中国第一到世界第一

文 | 螳螂观察作者 | 余一在吴晓波2025年科技人文秀舞台上,“AI闪耀中国”的宏大叙事揭示了技术浪潮席卷一切的必然。从能文能武的机器人,到全面接管生活的AI大模型,再到被AI渗透与融合的先进制造业工厂,都在诠释真正的科技革命&a…

作者头像 李华
网站建设 2026/6/10 9:45:55

YOLOv8训练时imgsz640的作用是什么?分辨率影响解析

YOLOv8训练时imgsz640的作用解析:分辨率如何影响检测性能 在目标检测的实际项目中,我们常常会遇到这样一个问题:为什么几乎所有的YOLOv8教程和官方示例都默认使用 imgsz640?这个数字是随意选的吗?如果我用320、480甚至…

作者头像 李华