现代C++学习指南-具体类

打印 上一主题 下一主题

主题 907|帖子 907|积分 2721

类作为C++中重要的概念之一,有着众多的特性,也是最迷人的部分!
类是一个加工厂,开发者使用C++提供的各种材料组装这个工厂,使得它可以生产出符合自己要求的数据,通过对工厂的改造,可以精细控制对象从出生到死亡的各种行为,真正达到我的代码我做主的境界。


我们经常说的面向对象三大特征:封装,继承和多态,其实说的是一种抽象维度。最简单的就是具体类,它将数据打包在一起,提供操作数据的函数,使得开发者不再需要通过传参的形式传递数据。它实现了事物的抽象,也就是所谓的封装。第二层是在一堆数据中提取出共性的部分作为基类,然后将特性作为子类,充分利用继承的优点,实现代码复用。它不仅追求数据抽象,也追求行为上的相似性。而更进一步,一套算法不关心实际的数据,只关心它可以用来完成什么工作,甚至相互都不知道对方的存在,唯一的共同点就是都继承自某个类,都能完成那个类指定的操作,至于细节都不关心,这就是多态,类只是一种规范流程。从第一层到第三层,抽象的事物从具体转向抽象,重心也从数据转向行为,只是为了更好的可维护性和解耦性。三者的关系可能是下图这样的:

为了能将跟高级的继承和多态讲明白,本篇我们将着重介绍他们的第一形态:封装,也就是具体类。
类的基本组成

类是一种自定义类型,主要由两部分组成:成员变量保存类管理的数据,成员函数操作数据。
和普通变量相比,类中的成员变量最大的不同是其生命周期。成员变量在类实例化后才占用空间,构造函数完成其初始化工作,在构造完成后,成员函数就可以无限制地使用成员变量,直到析构函数被调用。
成员函数和普通函数的不同之处是成员函数有个隐含的this指针,这个指针指向成员变量的存储位置,也就是可以很方便地完成成员变量的访问。
由此可见,具体类研究的主体是数据。接下来我将围绕着数据的生命周期完成对类特性的解析。
对象的创建和销毁

类的第一大作用就是控制类怎么生成和销毁。和Java不同,不需要用new也会涉及到构造函数的调用,哪怕只是个普通的局部变量,出了变量的作用范围,对象就会被销毁,内存就会被释放。
[code]class Sample{ public:    Sample(){        std::cout

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

数据人与超自然意识

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表