面向过程的设计方法
形式:
主模块+若干个子模块(main()+子函数)。
特点:
自顶向下,逐步求精——功能分解。
缺点:
效率低,程序的可重用性差。
什么是面向对象
面向对象的程序设计的基本思路:使用现实世界的概念抽象地思考问题从而自然地解决问题。
现实世界是有各种实体组成。如一个学校,有学生、教师、各种教学辅
助设施等等不同的实体组成。
实体之间通过消息传递(教师学生布置作业即是发送了消息,)进行沟
通交流,相互协作完成某项任务。
对象
1.对象是人们要进行研究的任何事物,是现实世界中的一个实体。
2.任何对象都拥有一组数据和操作。
对象所拥有的数据称为对象的属性。
类
1.类是对象的抽象。
2.相同特征的一组对象进行抽象形成了类。
数据封装
1.把数据和对数据的操作相结合,将它们视为一个单独的单元(称为类)的行为称为封装。
2.在类中,被封装的数据不能被外界直接访问,只能被封装在同一个类中的函数访问。这些函数提供了对象数据和程序之间的接口。避免数据被程序直接访问的概念被称为信息隐藏。
3.封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只需要通过外部接口,以特定的访问权限,来使用类的成员。
4.数据封装是类的最典型特点。
继承
继承是可以让某个类型的对象获得另一个类型的对象的属性的一种技术。
多态性
不同的对象,对同一消息的不同响应。
如:加法操作,如果操作的数据是数,它对两个数求和。如果操作的数据是字符串,则它将连接两个字符串。
类的组成
一组数据成员
定义了该类的对象所共有的属性,类似于结构体的成员。
一组成员函数
定义了该类的对象所共有的操作,相当于结构体中的函数。
类的声明形式
class 类名称
{
public:
公有成员(外部接口)
private:
私有成员
protected:
保护型成员
} ;
注意
1.在类的声明中不能对数据成员进行初始化
2.类的任何成员都必须指定访问属性
一般 将类的数据成员定义为私有或保护成员
将成员函数定义为共有成员
3.类的成员可以是其他类的成员,但不能是类自身的对象作为本类的成员
4.类的定义必须以;结束
5.class与struct的不同:
①class中,成员情况是private。
②struct中,成员情况是public。
成员函数
c++ 中定义public, protect, private 三种访问权限的原因
对于类的成员来说,有些需要给外面看的,也就是对外接口,那么就是public,如果没有,那么我们做的工作将是毫无意义的,(别人没法用)。如果不想让别人知道内部的实现细节,那么就是private。如果不想让别人知道,想让自己的孩子什么的知道(这里涉及到继承),那么就可以作为protected。
三种访问控制的特点
private:只能由
1.该类中的函数、
2.其友元函数访问。
不能被任何其他访问,该类的对象也不能访问。
protected:可以被
1.该类中的函数、
2.派生类的函数、以及
3.其友元函数访问。
但不能被该类的对象访问。
public:可以被
1.该类中的函数、
2.派生类的函数、
3.其友元函数访问,也可以由
4.该类的对象访问。
友元函数包括3种:
设为友元的普通的非成员函数;
设为友元的其他类的成员函数;
设为友元类中的所有成员函数。
对象成员的访问
1.通过对象名和成员运算符访问对象成员
** 对象名.成员名**
2.通过指向对象的指针访问对象中成员
指针名->成员名
student stud1,*p;
p=&stud1;
cout<num
p->num, (*p).num, stud1.num三者等价. 不可以访问私有