news 2026/6/15 14:29:33

继承与派生

作者头像

张小明

前端开发工程师

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

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

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

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

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

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

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

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

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

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

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

提高生存模型的泛化能力

原文:towardsdatascience.com/improving-generalization-in-survival-models-bb7bc045bfc6?sourcecollection_archive---------8-----------------------#2024-04-05 关于估算和提高员工流失预测准确性的建议 https://medium.com/nicolupi.2?sourcepost_page---b…

作者头像 李华
网站建设 2026/6/15 11:43:06

Keil调试教程:实时监控PID控制的实战方法

用Keil玩转实时PID调试:边跑代码边调参的硬核技巧 你有没有过这样的经历? 写好了一段PID控制算法,烧进单片机后发现系统震荡不止;想改个 Kd 试试看,就得停下程序、修改代码、重新编译下载——一顿操作下来&#xf…

作者头像 李华
网站建设 2026/6/15 12:01:16

YOLOv8如何加载yolov8n.pt模型进行图像识别?

YOLOv8如何加载yolov8n.pt模型进行图像识别? 在智能摄像头、自动驾驶和工业质检系统中,我们常常需要让设备“看清”画面中的物体——不是简单地看到,而是准确识别出每一辆汽车、每一个行人或缺陷区域。这种能力的背后,往往离不开高…

作者头像 李华
网站建设 2026/6/15 10:25:57

Keil编译器中文路径乱码问题手把手教程

手把手解决Keil中文路径乱码:从坑里爬出来的实战经验你有没有遇到过这种情况?辛辛苦苦写完代码,点击“Build”——结果编译输出窗口一片“天书”:–‡„、???‘¡?……或者更离谱的报错:“cannot open source …

作者头像 李华
网站建设 2026/6/12 5:09:37

YOLOv8能否用于地质勘探?岩层识别初步探索

YOLOv8能否用于地质勘探?岩层识别初步探索 在智能矿山、页岩气开发和深地探测等前沿领域,如何快速准确地识别岩芯图像中的不同岩层,正成为制约效率提升的关键瓶颈。传统方法依赖地质专家肉眼判读——耗时长、主观性强、难以标准化。而与此同时…

作者头像 李华