预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共16页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

2009/10/30 •5.类与对象•5.2面向对象程序设计的特点 –5.1面向对象的思想 –抽象 •类与对象是面向对象程序设计OOP(Object-Oriented Programming)的基础,是c++区别于c的主要特征•数据抽象:定义了对象的属性和状态。 •面向对象与面向过程的区别•代码抽象:定义了对象的共同行为特征或具有的同 –函数与它所操作的数据密切相关,相互依赖,特定的函数往往对样功能。 特定的数据结构进行操作 –数据结构的改变对相关函数的影响–封装 –面向过程:难于调试和修改。•数据成员和代码。对象自身以及程序如何引用对象 •类是指具有相同的属性和操作,并遵守相同规则的对象的集合。的数据?对象内访问,对象外访问。 类与对象的关系。 ••对象可以拥有私有成员-隐藏细节。 –类是对象集合的抽象,对象是类的一个实例。 •消息作为对象之间沟通的桥梁•优点:独立性,保护内部数据,易维护。 –消息包括:目标对象名字,请求方法,参数 的优点:开发时间短,效率高,可 –继承(重用性)•OOP •一种联结类与类的层次模型。一种明确表述共性靠性高。代码重用性高,易于维护,易 的方法。于更新升级。 •派生——类继承的手段。派生类(子类),基类•难点:如何将OOP的概念,渗透到实际 (父类)。 的业务模型当中。 –多态性 •允许不同类的对象对同一消息作出响应。 •多态性主要体现在:函数重载、虚函数。 •例如基类和派生类可以有同名函数,定义不同的 操作(一个接口,多种方法)。 1 2009/10/30 •5.3类与对象–定义格式: –类的定义•class类名 •{ •数据成员(类的属性) private: •成员函数(类的方法)//私有成员 •构造函数,析构函数protected: •运算符函数//被保护成员 •Example:public: //公有成员 cli{lasspoint{ •}; public: •Example:7.1p103 unsignedx,y;–成员函数的定义 voidShowMe(){cout<<x<<“,”<<y<<endl;} –内联成员函数 }; –对象 •类成员访问控制权限3种:private,protected,public •形成一种概念:类内访问&类外访问–构造函数与析构函数 –成员函数的定义•public公有: 类以外的程序可以通过诸如“对象名成员”,“对 •规则:类型类名::函数名(行参表){函数体}–. 象指针->成员”来访问。类内的其他成员也可以访 •::作用域运算符。问。 •区别程序当中的作用域含义。(全局,局部,主 要用来控制对变量的访问)•protected保护: 类以外的程序不允许访问这个成员,只有这个类的 •类的所有成员都在该类的作用域内。一个类的任– 成员才可访问。通过类对象不可直接调用。 何成员都可以访问该类的其他任何成员(类内访 问的范畴)。•private私有: •如果从该类的作用域之外来访问该类的数据成员–类以外的程序不允许访问这个成员,只有这个类的 或者成员函数,则要受到访问控制类型的限制。成员才可访问。通过类对象不可直接调用。 •::函数名(实参表);•类型定义默认情况下都是私有的。 该种函数的调用,与类内成员函数调用的区别。 –•protected和private的区别。 –主要体现在继承和派生过程中 2 2009/10/30 –内联成员函数–对象 •关键字inline来修饰。•类的实例。 •直接在类的定义中定义成员函数的函数体。P104•对象的使用P105example7.3 –1.成员函数访问类中的数据成员,或调用其他成员函 –类的成员函数可以重载,也可带默认参数。数可以直接使用数据成员名或成员函数名。 –2.在对象外访问该对象的数据成员或成员函数需要使 用运算符“.” class.fun1(); –3.在对象外直接访问一个对象的私有或者保护成员属 于非法操作,导致编译错误。 –4.同类对象之间可以整体赋值。类似于C/C++语法中的 structure之间整体赋值。 classobj1,obj2; obj1=obj2; –5.对象作为函数参数时属于赋值调用。对象可作为函 数返回值。 •5.4构造函数和析构函数 –构造函数(决定了类的对象如何创建、初始化、复•5.5数据成员初始化p108 制)在构造函数体内进行初始化。 •定义了创建对象的方法,提供了初始化对象的一种简单手–1. 段。•带参数 •定义:类名::类名(行参表);•不带参数 •注意:构造函数与类同名,没有返回值。定义可以在类外, 也可以是内联,允许重载。–2.在构造函数的头部进行初始化 –析构函数(决定了类的对象如何撤销)•类名::构造函数名(行参表):变量1(初值