C、C++?面向对象?面向过程?

本文探讨了C语言的面向过程思想和C++的面向对象思想,解释了两者之间的区别和联系。C语言注重分析问题的步骤并通过函数实现,而C++则提倡将问题分解为对象,通过对象的相互作用解决问题。C++是C的超集,兼容C语法。文章强调理解和实践这两种思维方式的重要性。

在学习C、C++以来,一直是在使用它们来编程,却从没有去仔细的考虑过他们的基本的思想,突然被问到面向对象、面向过程的时候,就会有一些吞吞吐吐,模棱两可(这都不知道,还好意思说自己会C、C++??面试官:好了下一位。),所以现在要用自己的语言去说明自己的看法。

一、面向对象(OOP)和面向过程

1.面向对象和面向过程是什么
C语言是面向过程语言,C++是面向对象语言,而这两个究竟是什么呢?
计算机语言是用来解决实际生活中的问题的,而问题的解决方法又有很多种。
(1)对于C语言而言,面对一个问题,它总是要分析解决这个问题需要哪些步骤(即分析了问题的过程),然后通过函数去一步一步的将这些步骤实现出来,最后挨个调用这些函数去解决这个问题,这就是面向过程,是一种底层思维。
(2)C++就不一样了,我觉得C++教会我的是如果把问题分解成一个个小问题,然后通过这些小问题解决方法的相互耦合去解决大问题。也就是说,当面对一个问题时,先把问题本身分解为各个小部分(对象),对于每一部分我们来设定该部分的实现方案,也就是说只需要完成该部分特定的行为,通过各对象完成本职工作或者对象间的协调配合去完成整个任务。这就是面向对象,是一种上层思维。

2.为什么要有面向对象和面向过程呢
存在即合理,他们一定有各自的优劣势呀!
(摘抄)
面向过程:

优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能时最重要的因素。
缺点:没有面向对象易维护、易复用、易扩展。

面向对象:

优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护。
(三大基本特征:封装、继承、多态)
缺点:性能比面向过程低。

区别:
(1)出发点不同
(2)层次逻辑关系不同
(3)数据处理方式与控制程序不同
(4)分析设计与编码转换方式不同

3.怎么用呢?
我觉得怎么使用这个问题的回答是无法被回答出来的,因为对于一种方法,只有在自己的实践过程中慢慢去悟出来的。我也要从日常的学习中去领悟面向对象、面向过程的真正意义。

二、C、C++的区别和联系

联系:
C++是C的超集,兼容大部分C的语法的结构
(应该算是一种血缘关系了吧,个人认为,把C学好了入门其他高级语言就会容易很多,切记勿在浮沙筑高台!!!!)

常见问法知识:
1.面向对象、面向过程
2.动态内存管理(new/delete,malloc/free)
3.C的struct、c++的class
4.引用和指针的区别
5.等等等
区别简直太多了,这些也都是面试常见问题,慢慢整理,慢慢补充吧。

继续加油吧!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值