当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

中国科学技术大学:《编译原理与技术》课程教学资源(PPT课件讲稿)第12章 面向对象语言的编译

资源类别:文库,文档格式:PPT,文档页数:37,文件大小:527KB,团购合买
• 概述面向对象语言的重要概念和实现技术 • 以C++语言为例,介绍如何将C++程序翻译成C程序 • 实际的编译器大都把C++程序直接翻译成低级语言程序
点击下载完整版文档(PPT)

第十二章 面向对象语言的编译 本章内容 概述面向对象语言的重要概念和实现技术 以C++语言为例,介绍如何将C++程序翻译 成C程序 实际的编译器大都把C++程序直接翻译成低 级语言程序

第十二章 面向对象语言的编译 本章内容 • 概述面向对象语言的重要概念和实现技术 • 以C++语言为例,介绍如何将C++程序翻译 成C程序 • 实际的编译器大都把C++程序直接翻译成低 级语言程序

12.1面向对象语言的概念 12.1.1对象和对象类 对象 由一组属性和操作于这组属性的过程组成 属性到值的映射称为对象的状态,过程称为方法 对象类 类对象的总称,规范了该类中对象的属性和方 法,包括它们的类型和原型 对象有自己存放属性的存储单元;同一个类的对 象可以共享方法的代码 对象类形成了面向对象语言的模块单元 下面将把术语“类”和“类型”看成是同义的

12.1 面向对象语言的概念 12.1.1 对象和对象类 • 对象 – 由一组属性和操作于这组属性的过程组成 – 属性到值的映射称为对象的状态,过程称为方法 • 对象类 – 一类对象的总称,规范了该类中对象的属性和方 法,包括它们的类型和原型 – 对象有自己存放属性的存储单元;同一个类的对 象可以共享方法的代码 – 对象类形成了面向对象语言的模块单元 – 下面将把术语“类”和“类型”看成是同义的

12.1 面向对象语言的概念 12.1.2继承 图形对象的继承层次结构 GraphicalObj translate scale PolyLine translate scale ClosedGraphics length area Ellipse PolyGon translate area scale area Rectangle Triangle area

12.1 面向对象语言的概念 12.1.2 继承 图形对象的继承层次结构 GraphicalObj translate scale PolyLine translate scale length ClosedGraphics area Ellipse translate scale area PolyGon area Rectangle area Triangle … … … … … …

12.1面向对象语言的概念 继承 基类、派生类、子类、抽象类 子类型规则 当某个类型的一个对象在某个输入位置被需要或作 为函数的返回值时,其任何子类型的对象允许出现 在这些地方 类B的一个对象,若它不同时是B的某个真子 类的对象,那么称该对象是B的真对象,称B 是该对象的运行时类型

12.1 面向对象语言的概念 继承 • 基类、派生类、子类、抽象类 • 子类型规则 当某个类型的一个对象在某个输入位置被需要或作 为函数的返回值时,其任何子类型的对象允许出现 在这些地方 • 类B的一个对象,若它不同时是B的某个真子 类的对象,那么称该对象是B的真对象,称B 是该对象的运行时类型

12.1面向对象语言的概念 12.1.2继承 图形对象的继承层次结构 GraphicalObj translate scale PolyLine translate scale ClosedGraphics length area Ellipse PolyGon translate area scale area Rectangle Triangle area

12.1 面向对象语言的概念 12.1.2 继承 图形对象的继承层次结构 GraphicalObj translate scale PolyLine translate scale length ClosedGraphics area Ellipse translate scale area PolyGon area Rectangle area Triangle … … … … … … B

12.1面向对象语言的概念 方法选择规则 如果类B继承类A并且重写了方法m,那么对 类B的对象b来说,即使它作为类A的对象使用 也必须使用在类B中定义的方法m

12.1 面向对象语言的概念 • 方法选择规则 如果类B继承类A并且重写了方法m,那么对 类B的对象b来说, 即使它作为类A的对象使用, 也必须使用在类B中定义的方法m

12.1面向对象语言的概念 12.1.2继承 图形对象的继承层次结构 GraphicalObj translate scale PolyLine translate scale ClosedGraphics length area Ellipse PolyGon translate area scale area Rectangle Triangle area

12.1 面向对象语言的概念 12.1.2 继承 图形对象的继承层次结构 GraphicalObj translate scale PolyLine translate scale length ClosedGraphics area Ellipse translate scale area PolyGon area Rectangle area Triangle … … … … … … B A

12.1面向对象语言的概念 动态绑定规则 当对象的一个方法可能被子类重新定义时, 如果编译器不能确定o的运行时类型,那么必 须对该方法进行动态绑定 void zoom (GraphicalObj &obj,double zoom factor,Point &center) obj.translate (-center.x,-center.y); /将“中心”移至“点(0,0) obj.scale(zoom factor);∥缩放

12.1 面向对象语言的概念 • 动态绑定规则 当对象o的一个方法可能被子类重新定义时, 如果编译器不能确定o的运行时类型,那么必 须对该方法进行动态绑定 void zoom (GraphicalObj &obj, double zoom_factor, Point &center) { obj.translate (−center.x, −center.y); // 将“中心”移至“点(0, 0)” obj.scale (zoom_factor); // 缩放 }

12.1面向对象语言的概念 12.1.3信息封装 大多数面向对象语言提供了一种机制,它可 用来将类的特征分成私有的和公共的 某些面向对象语言用不同的上下文区分作用 域,如“在一个类中”、 在派生类中”、 在友元类中”等等 由编译器来实现这些作用域规则是简单而又 明显的

12.1 面向对象语言的概念 12.1.3 信息封装 • 大多数面向对象语言提供了一种机制,它可 用来将类的特征分成私有的和公共的 • 某些面向对象语言用不同的上下文区分作用 域,如“在一个类中” 、 “在派生类中” 、 “在友元类中”等等 • 由编译器来实现这些作用域规则是简单而又 明显的

12.2 方法的编译 先定义一般的图形对象类GraphicalObj如下: class GraphicalObj virtual void translate (double x offset,double y_offset); virtual void scale (double factor); /可能还有一些其它方法

12.2 方法的编译 先定义一般的图形对象类GraphicalObj如下: class GraphicalObj { virtual void translate (double x_offset, double y_offset); virtual void scale (double factor); . . . // 可能还有一些其它方法 };

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共37页,可试读13页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有