我与C++的故事

做为一位物联网工程专业的大学,在大一刚开始时我就开始接触C语言,在一年的学习过程中我领略到了C语言面向结构的编程思想,在单片机开发中C语言发挥着其他语言无可替代的作用,因此虽然学习难度较高我也一直在努力的学习相关的语法知识和编程技巧。在日复一日的相处中渐渐的对于我也发现了我的这位"初恋"也有着一些缺点,一是编写复杂程序时难度较高,二是没有"对象"。

面向对象和面向过程编程是两大主流编程思想,有人说面向对象的编程思想可以在编写大型项目时实现事半功倍的效果,为了了解这种全新的编程思想,我把目光转向了C语言的兄弟C++,C++被人们称作带类的C。由于先前有过C语言的编程基础,所以我入门C++的过程还算顺利,由于C语言的语法格式在C++中大多都被兼容,因此在最初学习C++时我往往会不自主的使用C语言中的库函数和语法,例如输出成员变量时我总会不自主的使用printf,但是在掌握了cout的输出语法后发现相比于printf的输出方式,cout显得更加方便,以至于现在编写C语言程序时会不自主的使用cout,在不断的学习过程中我开始庆幸自己有着C语言的编程基础,否则以我的理解能力估计很难坚持到现在。在学习C++的过程中我也渐渐理解到了面向对象编程方式的优势,封装、继承、多态、抽象,这些特性提高了编写程序的效率,这些特性大都依托类来实现,所以早期我一直认为类的这些特性在C语言中定然无法实现,但直到后来我在拜读Linux内核源码时突然发现,C语言中的结构体也能够在一定程度上实现上述的四大特性。例如在公开头文件中只声明一个结构体类型,但是不定义其成员,随后将具体的结构体定义放在源文件中,这样一来外部代码只能通过内核提供的函数接口来操作对应的结构体指针,无法访问其内部成员。这就在一定程度上复刻了C++中的封装特性。实现继承操作时只需要让子结构体的第一个成员为父结构体即可。多态特性通过定义一个包含多个函数指针的结构体,然后在主函数中定义一个指向这个结构体的指针,这样就可以在不同情况下灵活调用所需函数。

这些编程思想对我产生了极大的启发,我从中渐渐认识到不管时C语言、C++还是其他编程语言,它们被创造出来都是为了提高程序的编写效率,不同语言的编写格式各有千秋,但是编码思想是可以在一定程度上实现迁移的

相关推荐
XMYX-0几秒前
07 - Go 函数(上):定义、参数、返回值与实战技巧
开发语言·后端·golang
Robot_Nav1 分钟前
ThetaStar全局规划算法纯C++控制器详解
开发语言·c++·lazy_theta_star
草莓熊Lotso1 小时前
MySQL 从入门到实战:视图特性 + 用户权限管理全解
linux·运维·服务器·数据库·c++·mysql
雾岛听蓝1 小时前
进程信号机制深度解析
linux·开发语言·经验分享·笔记
Q741_1471 小时前
每日一题 力扣 1848. 到目标元素的最小距离 模拟 C++题解
c++·算法·leetcode·模拟
踏着七彩祥云的小丑8 小时前
pytest——Mark标记
开发语言·python·pytest
Dream of maid9 小时前
Python12(网络编程)
开发语言·网络·php
W23035765739 小时前
经典算法:最长上升子序列(LIS)深度解析 C++ 实现
开发语言·c++·算法
.Ashy.9 小时前
2026.4.11 蓝桥杯软件类C/C++ G组山东省赛 小记
c语言·c++·蓝桥杯
Y4090019 小时前
【多线程】线程安全(1)
java·开发语言·jvm