我与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++还是其他编程语言,它们被创造出来都是为了提高程序的编写效率,不同语言的编写格式各有千秋,但是编码思想是可以在一定程度上实现迁移的

相关推荐
秃然想通几秒前
Java继承详解:从零开始理解“父子关系”编程
java·开发语言
嘻嘻嘻开心1 分钟前
List集合接口
java·开发语言·list
源码获取_wx:Fegn08953 分钟前
基于springboot + vue物业管理系统
java·开发语言·vue.js·spring boot·后端·spring·课程设计
Joy-鬼魅4 分钟前
VC中共享内存的命名空间
c++·vc·共享内存命名空间
cike_y8 分钟前
JavaWeb-JDBC&事务回滚
java·开发语言·javaweb
青啊青斯11 分钟前
python markdown转word【包括字体指定】
开发语言·python·word
corpse201016 分钟前
trae下载依赖包特别慢!!!
开发语言·python
rainFFrain29 分钟前
QT显示类控件---QSlider
开发语言·qt
dragoooon3429 分钟前
[C++——lesson30.数据结构进阶——「红黑树」]
开发语言·数据结构·c++
云泽80830 分钟前
C++ STL 栈与队列完全指南:从容器使用到算法实现
开发语言·c++·算法