在学习C、C++以来,一直是在使用它们来编程,却从没有去仔细的考虑过他们的基本的思想,突然被问到面向对象、面向过程的时候,就会有一些吞吞吐吐,模棱两可(这都不知道,还好意思说自己会C、C++??面试官:好了下一位。),所以现在要用自己的语言去说明自己的看法。
一、面向对象(OOP)和面向过程
1.面向对象和面向过程是什么
C语言是面向过程语言,C++是面向对象语言,而这两个究竟是什么呢?
计算机语言是用来解决实际生活中的问题的,而问题的解决方法又有很多种。
(1)对于C语言而言,面对一个问题,它总是要分析解决这个问题需要哪些步骤(即分析了问题的过程),然后通过函数去一步一步的将这些步骤实现出来,最后挨个调用这些函数去解决这个问题,这就是面向过程,是一种底层思维。
(2)C++就不一样了,我觉得C++教会我的是如果把问题分解成一个个小问题,然后通过这些小问题解决方法的相互耦合去解决大问题。也就是说,当面对一个问题时,先把问题本身分解为各个小部分(对象),对于每一部分我们来设定该部分的实现方案,也就是说只需要完成该部分特定的行为,通过各对象完成本职工作或者对象间的协调配合去完成整个任务。这就是面向对象,是一种上层思维。
2.为什么要有面向对象和面向过程呢
存