C++与C语言面向过程不同,是面向对象的语言。
面向对象的三大特性:封装、继承、多态
什么是封装?就是要把类变成像内置类型及其复合形式(数组)一样,能够直接初始化、复制、各种运算等等。C++中的面向对象就是怎么把资源这一类面向过程的资源转成像面向对象那样简单易用。
资源有两类,其中一种是计算机资源。刚开始C编程的时候,那么是直接跟计算机系统打交道。打开文件或IO,获得其文件描述符(指向了内核里的对象/指针),然后通过操作该指针进行操作;多线程之间需要处理同步问题,那么就用信号量同步。像文件描述符、信号量、锁、线程等操作系统内核提供的资源,这就是计算机资源。像这类资源,在一个进程中是唯一的,调用了之后需要自己主动释放资源(例如close、release等)。当我们使用这类资源,就有一个过程,需要开始、中间操作、结束等步骤。那能不能像使用内置变量那么简单,要用的时候生成,然后就不用管它释放与否,让系统自己去处理?
类要封装的不仅仅是操作系统资源,还有从heap分配的资源。heap资源是第二种资源,这类资源和系统资源一样,new了之后,需要手动调用delete去释放资源。否