计算机程序设计基础-c简介.ppt
《计算机程序设计基础-c简介.ppt》由会员分享,可在线阅读,更多相关《计算机程序设计基础-c简介.ppt(71页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、1C+语言简介语言简介清华大学清华大学 郑郑 莉莉C+语言程序设计简介清华大学 郑莉2本讲内容本讲内容l类与对象类与对象l继承与派生继承与派生l多态性多态性lC+标准模板库标准模板库C+语言程序设计简介清华大学 郑莉3回顾:面向过程的设计方法回顾:面向过程的设计方法l重点重点:重点是实现的细节和过程,将数据与函数分开。l形式:形式:主模块+若干个子模块(main()+子函数)。l特点:特点:自顶向下,逐步求精功能分解。l缺点:缺点:效率低,程序的可重用性差。面向对象的思想C+语言程序设计简介清华大学 郑莉4面向对象的方法面向对象的方法l目的:目的:实现软件设计的产业化。l观点:观点:自然界是由
2、实体(对象)所组成。l程序设计方法:程序设计方法:使用面向对象的观点来描述、模仿并处理现实问题。l要求:要求:高度概括、分类、和抽象。面向对象的思想C+语言程序设计简介清华大学 郑莉5抽象抽象抽象是对具体对象(问题)进行概括,抽象是对具体对象(问题)进行概括,抽出这一类对象的公共性质并加以描述抽出这一类对象的公共性质并加以描述的过程。的过程。先注意问题的本质及描述,其次是实现过程或细节。数据抽象:描述某类对象的属性或状态(对象相互区别的物理量)。代码抽象:描述某类对象的共有的行为特征或具有的功能。抽象的实现:通过类的声明。OOP的基本特点C+语言程序设计简介清华大学 郑莉6抽象实例抽象实例钟表
3、钟表l数据抽象:数据抽象:int Hour,int Minute,int Secondl代码抽象:代码抽象:SetTime(),ShowTime()OOP的基本特点C+语言程序设计简介清华大学 郑莉7抽象实例抽象实例钟表类钟表类class Clock public:void SetTime(int NewH,int NewM,int NewS);void ShowTime();private:int Hour,Minute,Second;OOP的基本特点C+语言程序设计简介清华大学 郑莉8抽象实例抽象实例人人l数据抽象:数据抽象:char*name,char*gender,int age,in
4、t idl代码抽象:代码抽象:生物属性角度:GetCloth(),Eat(),Step(),社会属性角度:Work(),Promote(),OOP的基本特点C+语言程序设计简介清华大学 郑莉9封装封装将抽象出的数据成员、代码成员相结将抽象出的数据成员、代码成员相结合,将它们视为一个整体。合,将它们视为一个整体。目的是曾强安全性和简化编程,使用者不必了解具体的实现细节,而只需要通过外部接口,以特定的访问权限,来使用类的成员。实现封装:类声明中的OOP的基本特点C+语言程序设计简介清华大学 郑莉10封装封装l实例:实例:class Clock public:void SetTime(int New
5、H,int NewM,int NewS);void ShowTime();private:int Hour,Minute,Second;边界特定的访问权限OOP的基本特点外部接口C+语言程序设计简介清华大学 郑莉11继承与派生继承与派生是是C+中支持层次分类的一种机制,中支持层次分类的一种机制,允许程序员在保持原有类特性的基础上,允许程序员在保持原有类特性的基础上,进行更具体的说明。进行更具体的说明。实现:声明派生类实现:声明派生类OOP的基本特点C+语言程序设计简介清华大学 郑莉12多态性多态性l多态:同一名称,不同的功能实现方式。多态:同一名称,不同的功能实现方式。l目的:达到行为标识统一
6、,减少程序中标目的:达到行为标识统一,减少程序中标识符的个数。识符的个数。l实现:重载函数和虚函数实现:重载函数和虚函数OOP的基本特点C+语言程序设计简介清华大学 郑莉13c+中的类中的类l类是具有相同属性和行为的一组对象类是具有相同属性和行为的一组对象的集合,它为属于该类的全部对象提的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属供了统一的抽象描述,其内部包括属性和行为两个主要部分。性和行为两个主要部分。l利用类可以实现数据的封装、隐藏、利用类可以实现数据的封装、隐藏、继承与派生。继承与派生。l利用类易于编写大型复杂程序,其模利用类易于编写大型复杂程序,其模块化程度比块化程
7、度比C中采用函数更高。中采用函数更高。类 和 对 象C+语言程序设计简介清华大学 郑莉14类的声明形式类的声明形式类是一种用户自定义类型,其声明形式:类是一种用户自定义类型,其声明形式:class 类名称 public:公有成员(外部接口)private:私有成员 protected:保护型成员类 和 对 象C+语言程序设计简介清华大学 郑莉15公有类型成员公有类型成员是类与外部的接口,任何外部函数都是类与外部的接口,任何外部函数都可以访问公有类型数据和函数。可以访问公有类型数据和函数。以关键字以关键字publicpublic修饰。修饰。类 和 对 象C+语言程序设计简介清华大学 郑莉16私有
8、类型成员私有类型成员只允许本类中的函数访问,而类外部只允许本类中的函数访问,而类外部的任何函数都不能访问。的任何函数都不能访问。以关键字以关键字privateprivate修饰。修饰。如果如果紧跟在类名称的后面声明私有成员,紧跟在类名称的后面声明私有成员,则则关键字关键字privateprivate可以可以省略。省略。类 和 对 象C+语言程序设计简介清华大学 郑莉17保护类型保护类型与与private类似,其差别表现在继承与类似,其差别表现在继承与派生时对派生类的影响不同。派生时对派生类的影响不同。以关键字以关键字protectedprotected修饰。修饰。类 和 对 象C+语言程序设计
9、简介清华大学 郑莉18类的成员类的成员class Clock public:void SetTime(int NewH,int NewM,int NewS);void ShowTime();private:int Hour,Minute,Second;类 和 对 象数据成员函数成员void Clock:SetTime(int NewH,int NewM,int NewS)Hour=NewH;Minute=NewM;Second=NewS;void Clock:ShowTime()coutHour:Minute:Second;19C+语言程序设计简介清华大学 郑莉20数据成员数据成员l与一般的变
10、量声明相同,但需要将它与一般的变量声明相同,但需要将它放在类的声明体中。放在类的声明体中。类 和 对 象C+语言程序设计简介清华大学 郑莉21函数成员函数成员l在类中说明原型,可以在类外给出函数在类中说明原型,可以在类外给出函数体实现,并在函数名前使用类名加以限体实现,并在函数名前使用类名加以限定。也可以直接在类中给出函数体,形定。也可以直接在类中给出函数体,形成内联成员函数。成内联成员函数。l允许声明重载函数和带默认形参值的函允许声明重载函数和带默认形参值的函数。数。类 和 对 象C+语言程序设计简介清华大学 郑莉22对象对象l类的对象是该类的某一特定实体,即类的对象是该类的某一特定实体,即
11、类类型的变量。类类型的变量。l声明形式:声明形式:类名类名 对象名对象名;l例:例:Clock myClock;类 和 对 象C+语言程序设计简介清华大学 郑莉23类中成员的访问方式类中成员的访问方式l类中成员互访类中成员互访直接使用成员名l从类外访问从类外访问使用“对象名.成员名”方式访问 public 属性的成员类 和 对 象C+语言程序设计简介清华大学 郑莉24类的应用举例类的应用举例#includeusing namespace std;class Clock ./类的声明略类的声明略/.类的实现略类的实现略int main()Clock myClock;myClock.SetTime
12、(8,30,30);myClock.ShowTime();类 和 对 象C+语言程序设计简介清华大学 郑莉25组合的概念组合的概念l可以在已有的抽象的基础上实现更复可以在已有的抽象的基础上实现更复杂的抽象。杂的抽象。l类中的数据成员是另一个类的对象。类中的数据成员是另一个类的对象。类 的 组 合C+语言程序设计简介清华大学 郑莉26举例举例class Point private:float x,y;/点的坐标 public:Point(float h,float v);/构造函数 float GetX(void);/取X坐标 float GetY(void);/取Y坐标 void Draw(v
13、oid);/在(x,y)处画点;/.函数的实现略类 的 组 合class Line private:Point p1,p2;/线段的两个端点线段的两个端点 public:Line(Point a,Point b);/构造函数构造函数 Void Draw(void);/画出线段画出线段;/.函数的实现略函数的实现略4928继承与派生简介继承与派生简介C+语言程序设计简介清华大学 郑莉29类的继承与派生类的继承与派生l保持已有类的特性而构造新类的过程保持已有类的特性而构造新类的过程称为继承。称为继承。l在已有类的基础上新增自己的特性而在已有类的基础上新增自己的特性而产生新类的过程称为派生。产生新类
14、的过程称为派生。l被继承的已有类称为基类(或父类)。被继承的已有类称为基类(或父类)。l派生出的新类称为派生类。派生出的新类称为派生类。C+语言程序设计简介清华大学 郑莉30继承与派生问题举例继承与派生问题举例类的继承与派生C+语言程序设计简介清华大学 郑莉31继承与派生问题举例继承与派生问题举例类的继承与派生C+语言程序设计简介清华大学 郑莉32继承与派生问题举例继承与派生问题举例类的继承与派生C+语言程序设计简介清华大学 郑莉33继承与派生问题举例继承与派生问题举例类的继承与派生C+语言程序设计简介清华大学 郑莉34继承与派生的目的继承与派生的目的l继承的目的:实现代码重用。继承的目的:实
15、现代码重用。l派生的目的:当新的问题出现,原有派生的目的:当新的问题出现,原有程序无法解决(或不能完全解决)时,程序无法解决(或不能完全解决)时,需要对原有程序进行改造。需要对原有程序进行改造。类的继承与派生C+语言程序设计简介清华大学 郑莉35派生类的声明派生类的声明class 派生类名:派生类名:继承方式继承方式 基类名基类名 成员声明;成员声明;类的继承与派生C+语言程序设计简介清华大学 郑莉36继承举例继承举例class Point/基类基类Point类的声明类的声明public:/公有函数成员公有函数成员void InitP(float xx=0,float yy=0)X=xx;Y=
16、yy;void Move(float xOff,float yOff)X+=xOff;Y+=yOff;float GetX()return X;float GetY()return Y;private:/私有数据成员私有数据成员float X,Y;类成员的访问控制class Rectangle:public Point /派生类声明派生类声明public:/新增公有函数成员新增公有函数成员void InitR(float x,float y,float w,float h)InitP(x,y);W=w;H=h;/调用基类公有成员函数调用基类公有成员函数float GetH()return H;
17、float GetW()return W;private:/新增私有数据成员新增私有数据成员float W,H;37#include#includeusing namecpace std;int main()Rectangle rect;rect.InitR(2,3,20,10);/通过派生类对象访问基类公有成员通过派生类对象访问基类公有成员rect.Move(3,2);coutrect.GetX(),rect.GetY(),rect.GetH(),rect.GetW()endl;return 0;3839多态性简介多态性简介C+语言程序设计简介清华大学 郑莉40多态性的概念多态性的概念l多态
18、性是面向对象程序设计的重要特多态性是面向对象程序设计的重要特征之一。征之一。l多态性是指发出同样的消息被不同类多态性是指发出同样的消息被不同类型的对象接收时有可能导致完全不同型的对象接收时有可能导致完全不同的行为。的行为。l多态的实现:多态的实现:函数重载运算符重载虚函数C+语言程序设计简介清华大学 郑莉41问题举例问题举例复数的运算复数的运算class complex/复数类声明复数类声明public:complex(double r=0.0,double i=0.0)/构造函数构造函数 real=r;imag=i;void display();/显示复数的值显示复数的值private:do
19、uble real;double imag;运算符重载C+语言程序设计简介清华大学 郑莉42问题举例问题举例复数的运算复数的运算l用用“+”、“-”能够实现复数的加减运能够实现复数的加减运算吗?算吗?l实现复数加减运算的方法实现复数加减运算的方法 重载重载“+”、“-”运算符运算符运算符重载C+语言程序设计简介清华大学 郑莉43运算符重载的实质运算符重载的实质l运算符重载是对已有的运算符赋予多重含义运算符重载是对已有的运算符赋予多重含义l必要性必要性C+中预定义的运算符其运算对象只能是基本数据类型,而不适用于用户自定义类型(如类)l实现机制实现机制将指定的运算表达式转化为对运算符函数的调用,运
20、算对象转化为运算符函数的实参。编译系统对重载运算符的选择,遵循函数重载的选择原则。运算符重载C+语言程序设计简介清华大学 郑莉44运算符重载 例例 将将“+”+”、“-”-”运算重载为复数类运算重载为复数类的成员函数。的成员函数。l 规则规则:实部和虚部分别相加减。实部和虚部分别相加减。l 操作数操作数:两个操作数都是复数类的对象。两个操作数都是复数类的对象。#includeusing namespace std;class complex/复数类声明复数类声明public:/外部接口外部接口complex(double r=0.0,double i=0.0)real=r;imag=i;/构造
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 程序设计 基础 简介
限制150内