第2章 面向对象程序设计基础.ppt

  1. 1、本文档共87页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
河北经贸大学信息技术学院 教学目标: 教学内容: 2.1 面向对象的基本概念 观点: 自然界是由实体(对象)所组成。 程序设计方法: 使用面向对象的观点来描述、模仿并处理现实问题。 要求: 高度概括、分类、和抽象。 目的: 实现软件设计的产业化。 类和对象 对象是现实世界中一个实际存在的事物 对象的静态特征 对象的行为 类是具有相同属性和行为的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和行为两个主要部分。 对象之间的交互:发送消息 封装 封装的目的是隐藏对象的内部的实现细节。 通过封装,可以将对象的外部接口与内部的实现细节分开。 目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只需要通过外部接口,以特定的访问权限,来使用类的成员。 继承 继承是C++中支持层次分类的一种机制,允许程序员在保持原有类特性的基础上,对新类进行更具体的说明。 实现:声明派生类——2.3 多态性 多态:同一名称,不同的功能实现方式。 目的:标识统一,减少程序中标识符的个数; 接口统一,增加程序的灵活性 实现:——2.4 编译时的多态性:重载函数 运行时的多态性:虚函数 2.2 类与对象的定义 类是C++的灵魂,如果不真正掌握类,就不能真正掌握C++ C++中的类就是一种用户自己定义的数据类型,和其它数据类型不同的是,组成这种类型的不仅可以有数据,而且可以有对数据进行操作的函数。 为了封装的需要,一般将类的定义放在一个.h文件中,而将类的成员函数的实现放在一个.cpp文件中。 2.2.1 类的定义 class 类名称 { public: 公有成员(外部接口) private: 私有成员 protected: 保护成员 } ; 例2.1:圆类的定义见教材24页 //Circle.h文件,类CCircle的定义 const double PI = 3.14159; // 定义圆周率为符号常量 class CCircle // 定义类 { public: CCircle() //构造函数 { radius = 1; } virtual ~CCircle() { } // 析构函数 inline double Area()const; // 计算圆的面积 double Circumference() const; // 计算圆的周长 double GetRadius() const // 取得圆的半径 { return radius; } void SetRadius( double r) // 为半径设置新值 { radius = r0 ? r : 1; } private: double radius; // 数据成员 }; inline double CCircle::Area() const // 计算圆的面积 { return PI * radius * radius; } 说明: 类的数据成员(成员变量) :与一般的变量声明相同,但需要将它放在类的声明体中,一般为私有访问属性。 类的成员函数定义: 在类中说明原型,类外给出函数体实现,函数名之前必须加类名和作用域区分符限定 将成员函数定义为内联函数: 成员函数在类的内部定义,此时无须使用inline关键字,成员函数自动为内联函数。 成员函数在类内声明,在类外定义。但在类外定义时,要加关键字inline。类的成员函数允许声明为 const成员函数 const成员函数: 不修改数据成员的值, 在程序中如果不小心修改了这个成员函数中的对象,则编译器会产生一个语法错误信息。 const 成员函数的定义方法: 在函数的原型和定义中,在函数参数表和函数定义的左花括号之间加入const关键字。 类的成员函数允许重载,允许带缺省参数值。 2.2.2 构造函数 性质: 与类同名、无返回类型 在对象创建时由系统自动调用 允许重载、带缺省值 如果类中未声明,则系统自动生成一个缺省形式的构造函数,形如:类名(){ } 构造函数举例--- CCircle类 class CCircle { public: CCircle() // 无参(缺省)构造函数 { radius = 1; } CCircle(double r); // 带参构造函数 …… private: double radius; }; CCircle::CCircle(double r) {

文档评论(0)

yyh892289 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档