CPP --类---面向对象(抽象、封装、继承、多态)

面向对象(oop)与传统的过程性编程区别在于oop是在运行阶段决策;这就好比度假时选择参观哪些景点取决于天气和当时的心情;而编译阶段决策更像不管在什么条件下,都坚持预先设定的日程安排。

运行阶段决策--oop---使得系统更加灵活

抽象 ---对同一类对象的共同属性和行为进行概括,形成类。 有:数据抽象(属性或状态)、代码抽象(某类对象的共有的行为特征或功能)。抽象的实现是:类

 

封装 --- 将抽象出的数据、代码封装在一起,形成类

继承 --- 在已有类的基础上,进行扩展形成新的类。

多态 --- 同一名称,不同的功能实现方式。目的:达到行为标识统一,减少程序中标识符的个数。

 

类----设计类就是设计类型

(举例)

 

构造函数 --- 类中的特殊函数>>>用于描述初始化算法

专门用于构造新对象,将值赋给它们的数据成员名称与类名相同

构造函数的使用:假设已经定义了一个Stock类。

1. 显式的调用---Stock food = Stock( "World Cabbage",250,1.25)

2. 隐式的调用---Stock food( "World Cabbage",250,1.25 )

默认构造函数---在未提供显示初始值时,用来创建对象的构造函数为类定义了构造函数后,就必须为它提供默认构造函数,如果要创建对象,而不显式的初始化,则必须定义一个不接受任何参数的默认构造函数。定义方式有两种:

1. 给已有构造函数的所有参数提供默认值:Stock (const string & co = "Error", int n = 0 , double pr = 0.0);

2. 通过函数重载来定义另一个构造函数——一个没有参数的构造函数:Stock( ) ;

委托构造函数--使用类的其他构造函数执行初始化过程,如:

复制构造函数-----一种特殊的构造函数,形参为本类的对象引用。作用是用一个已存在的对象去初始化同类型的新对象。

析构函数---完成对象被删除前的一些清理工作,在对象的生存期结束的时刻系统自动调用析构函数,如果程序中未声明析构函数,编译器将自动产生一个默认的析构函数,其函数体为空。---~类名()--析构函数没有参数,没有返回类型

类的组合--前向引用声明