- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C++ 程序设计 主讲 朱振元 第一章面向对象程序设计概述 什么是面向对象程序设计 面向对象程序设计中的基本概念 C++ 与C++ Builder概述 程序设计实例:栈演示程序 在程序中用一个字符表示栈中的一个元素 由输入字符而引起栈中当前元素的变化: 字符’P’:执行出栈操作, 字符’E’:退出执行, 其他字符:将该字符推入栈中。 栈的初始状态为空,程序从开始起顺序地执行直至输入字符’E’。 程序设计实例:栈演示程序 涉及的数据结构: struct Tnode //定义结点结构 {char data; Tnode* next; }; typedef Tnode* stack; //定义栈类型 void push(stack s,char el); //入栈函数 char pop(stack s); //出栈函数 void prnt(stack s); //该函数显示栈中元素 面向过程程序设计 实例 int main(int argc, char* argv[]) {stack s; char el; s=NULL; el=a; while (el != E ) { //输入一个字符存入el; //对el进行判别并进行相应的处理; //输出栈中的当前元素 }; } 面向过程程序设计 特点 数据和操作是分离的 程序是从开始至结束顺序地执行的 面向对象程序设计 实例 class Tlz { private: Tnode *top; public: Tlz(){top=NULL}; char pop(); void push (char el); …… }; Tlz lz1; lz1.push(el); 面向对象程序设计 特点 对象=数据结构 + 算法 程序=对象 + 对象 面向对象程序设计中的基本概念 类和对象 数据封装 继承 多态性 类和对象 类是对一组具有共同特征的对象的抽象。类中定义了与某一种对象相关联的一组数据以及施与该数据中的一组基本操作。 对象是类中的一个实体。例如字符串、线性表、栈、队列等或窗体、组合框、编辑框、无线按钮等 类定义的例子 class Tint { private: int v; public: Tint(int val=0){v=val;}; void inc(){v++;}; void dec(){v--;}; int get(){return v;}; }; Tint int1(10); 数据封装 数据封装是指:类的实现过程(数据存储方式、操作的执行过程)作为私有部分被封装在类结构中,使用者只能通过类的接口来访问或操作这些数据。 如要使int1对象中的v增加1 : int1.v=int1.v + 1; (错) int1.inc(); (对) 数据封装的利点 对于使用者:只要了解类定义的接口部分,即可操作对象实例,而不必去关心其实现细节。 对于实现者:有利于编码、测试及修改。只要向外界提供的接口方式不变,其它所有使用该对象的程序都可以不变,从而大大提高了程序的可靠性和稳定性。 数据封装的实现 一般将要封装的数据定义成私有成员,将类中被调用的内部函数也定义成私有成员 将向外界提供的操作作为接口定义为公有成员。 继承性 继承是指从已定义的类导出新类时,新类将自动包括原有类的全部数据和方法 多态性 多态性是指同一个函数的多种形态,即允许存在同名而行为方式不同的方法。 多态性增加了使用中的灵活性,为程序设计提供了方便。 编译时的多态性:在编译时系统就能自动进行识别而确定调用相应的方法 运行时的多态性 :只有在运行时系统才能确定所调用的方法 C 语言的特点 简洁、高效、灵活 支持结构化程序设计 不足之处: 类型检查机制相对较弱; 缺少支持代码重用的语言结构; 不适宜开发大型程序 C ++语言的特点 既可进行过程化程序设计,也可进行面向对象程序设计。 改进了C语言的不足之处 具有可重用性、可扩充性、可维护性、和可靠性 尤其适用于大中型程序开发项目 面向对象的开发工具 是一种提供面向对象应用程序开发环境和运行环境的软件系统。 这种开发方式是面向对象(或对象组件)的,它集数据与操作于对象之中,具有组合性、开放性等特点 提供了可视化的开发环境以及自动代码生成等功能,使开发过程简化到最低程度。 应用广泛,通过使用开发工具,不仅可以开发一般的Windows应用程序 ,而且可以开发分布式应用软件、多媒体软件、网络应用软件等大型的软件系统。 C++ Bui
原创力文档


文档评论(0)