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

相关推荐
异步的告白2 小时前
C语言-数据结构-1-动态数组
c语言·数据结构·c++
wuwu_q2 小时前
用通俗易懂 + Android 开发实战的方式讲解 Kotlin Flow 中的 filter 操作符
android·开发语言·kotlin
想唱rap2 小时前
Linux开发工具(4)
linux·运维·服务器·开发语言·算法
Geoking.3 小时前
【Java】Java 中 @Resource 与 @Autowired 的区别详解
java·开发语言
生而为虫3 小时前
02.第一个Python程序
开发语言·python
星释3 小时前
Rust 练习册 :Rail Fence Cipher与栅栏密码
开发语言·算法·rust
weixin_441455263 小时前
说说Java有哪些集合类
java·开发语言
李趣趣3 小时前
C#中关于ContextMenuStrip批量添加Item的问题
开发语言·c#
张人玉3 小时前
C# 串口通讯中 SerialPort 类的关键参数和使用方法
开发语言·c#·串口通讯