类是一个通用的概念,C++、Java、C#、PHP 等很多编程语言都支持类,都可以通过类创建对象。可以将类看做是结构体的升级版。
因为这些语言都支持类,所以使用这些语言别写成语也被成为面向对象编程,这也语言也被成为面向对象编程的语言。C 语言因为不支持类和对象的概念,被成为面向过程的编程语言。
在 C 语言中,我们会把重复使用或者具有某项功能的代码封装成一个函数,将拥有相关功能的多个函数封装在一个源文件,再提供对应的头文件,这就是模块。使用模块时,引入对应的头文件就可以。
而在 C++ 中,多了一层封装,就是类(Class)。类有一组相关联的函数、变量组成,你可以将一个类或者多个类放在一个源文件,使用时引入对应的类就可以。
下面是 C 和 C++ 项目组织方式的对比:
类这一层封装有很多特性,极大地方便了中大型程序的开发。
面向对象编程在代码执行效率上没有绝对的优势,它的主要目的是方便程序员组织和管理代码,快速梳理编程思路,带来编程思想上的革新。
面向对象编程是针对开发中大规模的程序而提出来的,目的是提高软件的效率。不要把面向过程和相面对象对立起来,面向过程和面向对象不是矛盾的,而是各有用途,互为补充的。