一、面向过程程序设计
程序主要由一个个函数组成。
函数的调用过程和算法的解题步骤之间有密切的对应关系。
二、面向对象程序设计
程序由类组成。
程序运行时,多个“对象”彼此协作完成各种功能。
“对象”通常与物理世界的事物有一定的对应关系。
三、类与对象
1.类的定义:类与结构体相似,是一种自定义数据类型。类一般包含数据成员和方法成员。一般形式如下:
class 类名 {
public:
类型 数据成员;
类型 方法成员();
private:
类型 数据成员;
类型 方法成员();
};
数据成员(又叫成员属性)用于描述实体的属性。
方法成员(又叫成员函数)对应施加在属性上的操作。
2.对象的定义:定义对象的效果是在内存中为对象分配一片存储区域。
每个数据成员占据该对象存储区域的一部分。
每个方法成员存储在类的公共区域内,每个对象不必各自存储。
3.对象的使用:通过成员运算符“.”访问数据成员和方法成员。
4.指向对象的指针通过“->”引用成员。
5.共有成员和私有成员:
public限定名下的公共成员既可以供成员函数访问,也可以在类外部访问;private限定名下的私有成员只能供成员函数访问。
6.类外定义成员函数:
float Student::averageSocre() //::作用域限定符
四、构造函数
1.构造函数是负责对象初始化的成员函数。特点是:
函数名与类名相同;
在定义对象时自动执行一次,不能直接调用它;
不返回任何值;
如果类定义中没有构造函数,则编译器会自动生成一个构造函数。这个构造函数的函数体是空的,也没有参数。
2.可以用参数初始化表对数据成员初始化。
Box∷Box(int h, int w, int len):
height(h),width(w),length(len){ }
3.函数同名叫重载
五、析构函数
1.析构函数是释放对象时会自动执行的函数。
析构函数的名字是类名前加“~”;
一个类只能有一个没有参数的析构函数。
六、类的继承和派生
所谓“继承”就是在一个已定义的类(叫基类或父类)的基础上建立一个新的类(叫派生类或子类)。定义派生类的写法如下:
class 派生类名: public 基类名
{
//派生类新增加的成员
类型 数据成员;
类型 方法成员;
} ;
注意:
(1)派生类不能访问基类的私有成员;
(2)“class Master:public Student”中的public可替换成private, protected;
(3)派生类可以被更低级别的派生类继承,形成多级继承。
七、总结
1.面向对象程序设计有4个主要特点:
抽象 即概括、归纳
封装 类是数据和操作的封装
继承 派生类继承基类
多态性
好处:增强了可重用性,减少编程工作量。