面向对象语言的编译课件.pptVIP

面向对象语言的编译课件.ppt

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

***面向對象語言的編譯11.1面向對象語言的概念11.1.1對象和對象類對象由一組屬性和操作於這組屬性的過程組成屬性到值的映射稱為對象的狀態,過程稱為方法對象類一類對象的總稱,規範了該類中對象的屬性和方法,包括它們的類型和原型對象有自己存放屬性的存儲單元;對象可以共用方法的代碼對象類形成了面向對象語言的模組單元下麵我們將把術語“類”和“類型”看成是同義的11.1面向對象語言的概念11.1.2繼承圖形對象的繼承層次結構GraphicalObjtranslatescalePolyLinetranslatescalelengthClosedGraphicsareaEllipsetranslatescaleareaPolyGonareaRectangleareaTriangle………………11.1面向對象語言的概念繼承基類、派生類、子類、抽象類子類型規則 當某個類型的一個對象在某個輸入位置被需要或作為函數的返回值時,其任何子類型的對象允許出現在這些地方。類B的一個對象,若它不同時是B的某個真子類的對象,那麼稱該對象是B的真對象,稱B是該對象的運行時類型11.1面向對象語言的概念11.1.2繼承圖形對象的繼承層次結構GraphicalObjtranslatescalePolyLinetranslatescalelengthClosedGraphicsareaEllipsetranslatescaleareaPolyGonareaRectangleareaTriangle………………B11.1面向對象語言的概念方法選擇規則 如果類B繼承類A並且重寫了方法m,那麼對類B的對象b來說,即使它作為類A的對象使用,也必須使用在類B中定義的方法m11.1面向對象語言的概念11.1.2繼承圖形對象的繼承層次結構GraphicalObjtranslatescalePolyLinetranslatescalelengthClosedGraphicsareaEllipsetranslatescaleareaPolyGonareaRectangleareaTriangle………………AB11.1面向對象語言的概念動態綁定規則 當對象o的一個方法可能被子類重新定義時,如果編譯器不能確定o的運行時類型,那麼必須對該方法進行動態綁定voidzoom(GraphicalObjobj,double zoom_factor,Pointcenter){ obj.translate(?center.x,?center.y); //將“中心”移至“點(0,0)” obj.scale(zoom_factor);//縮放}11.1面向對象語言的概念11.1.3資訊封裝大多數面向對象語言提供了一種機制,它可用來將類的特徵分成私有的和公共的某些面向對象語言用不同的上下文區分作用域,如“在一個類中”、“在派生類中”、“在友元類中”等等由編譯器來實現這些作用域規則是簡單而又明顯的11.2方法的編譯先定義一般的圖形對象類GraphicalObj如下:classGraphicalObj{virtualvoidtranslate(doublex_offset,double y_offset);virtualvoidscale(doublefactor);... //可能還有一些其他方法};11.2方法的編譯classPoint:publicGraphicalObj{ doublexc,yc;public: voidtranslate(doublex_offset,doubley_offset){ xc+=x_offset;yc+=y_offset; } voidscale(doublefactor){ xc*=factor;yc*=factor; } Point(doublex0=0,doubley0=0){xc=x0;yc=y0;} voidset(doublex0,doubley0){xc=x

文档评论(0)

子不语 + 关注
官方认证
服务提供商

平安喜乐网络服务,专业制作各类课件,总结,范文等文档,在能力范围内尽量做到有求必应,感谢

认证主体菏泽喜乐网络科技有限公司
IP属地未知
统一社会信用代码/组织机构代码
91371726MA7HJ4DL48

1亿VIP精品文档

相关文档