文档介绍:C++杂谈
北京理工大学
此处,咱们讲得面向对象与过程,都是从程序语言角度来说的。
举例说明,其区别:驾车去南京
从过程来说,咱们必须会怎么去开车
,
从对象角度来说,咱们只需给车一个指令:我要去南京,就ok了
对象的状态与行为
对象具有状态,一个对象用数据值来描述它的状态
对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为
对象实现了数据与操作的结合,使数据和操作封装在对象的统一体中。
类
具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类得实例是对象。
类具有属性,它是对象的状态的抽象,用数据结构来描述累的属性。
类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。
面向对象的特征
特征:
:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
4. 多态性:多态性是指在一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或服务在一般类及其各个特殊类中具有不同的语义。例如:"几何图形"的"绘图"方法,"椭圆"和"多边形"都是"几何图"的子类,其"绘图"方法功能不同。
指针*与引用&联系与区别
相同点:
;指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。
区别:
,而引用仅是个别名
2. 引用只能在定义时被初始化一次,之后不可变;指针可变;
3. 引用不能为空,指针可以为空;
4. “sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身(所指向的变量或对象的地址)的大小(四个字节);
5. 指针和引用的自增(++)运算意义不一样
三种传递方式