ToB企服应用市场:ToB评测及商务社交产业平台
标题:
现代C++学习指南-具体类
[打印本页]
作者:
数据人与超自然意识
时间:
2023-6-22 02:03
标题:
现代C++学习指南-具体类
类作为C++中重要的概念之一,有着众多的特性,也是最迷人的部分!
类是一个加工厂,开发者使用C++提供的各种材料组装这个工厂,使得它可以生产出符合自己要求的数据,通过对工厂的改造,可以精细控制对象从出生到死亡的各种行为,真正达到我的代码我做主的境界。
类
我们经常说的面向对象三大特征:封装,继承和多态,其实说的是一种抽象维度。最简单的就是具体类,它将数据打包在一起,提供操作数据的函数,使得开发者不再需要通过传参的形式传递数据。它实现了事物的抽象,也就是所谓的封装。第二层是在一堆数据中提取出共性的部分作为基类,然后将特性作为子类,充分利用继承的优点,实现代码复用。它不仅追求数据抽象,也追求行为上的相似性。而更进一步,一套算法不关心实际的数据,只关心它可以用来完成什么工作,甚至相互都不知道对方的存在,唯一的共同点就是都继承自某个类,都能完成那个类指定的操作,至于细节都不关心,这就是多态,类只是一种规范流程。从第一层到第三层,抽象的事物从具体转向抽象,重心也从数据转向行为,只是为了更好的可维护性和解耦性。三者的关系可能是下图这样的:
为了能将跟高级的继承和多态讲明白,本篇我们将着重介绍他们的第一形态:封装,也就是具体类。
类的基本组成
类是一种自定义类型,主要由两部分组成:成员变量保存类管理的数据,成员函数操作数据。
和普通变量相比,类中的成员变量最大的不同是其生命周期。成员变量在类实例化后才占用空间,构造函数完成其初始化工作,在构造完成后,成员函数就可以无限制地使用成员变量,直到析构函数被调用。
成员函数和普通函数的不同之处是成员函数有个隐含的this指针,这个指针指向成员变量的存储位置,也就是可以很方便地完成成员变量的访问。
由此可见,具体类研究的主体是数据。接下来我将围绕着数据的生命周期完成对类特性的解析。
对象的创建和销毁
类的第一大作用就是控制类怎么生成和销毁。和Java不同,不需要用new也会涉及到构造函数的调用,哪怕只是个普通的局部变量,出了变量的作用范围,对象就会被销毁,内存就会被释放。
[code]class Sample{ public: Sample(){ std::cout
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4