MFC编程OOP思想解析.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MFC编程的OOP思想;MFC类库介绍 MFC的OOP思想;MFC是VC提供的,封装有windows 系统API的类库 Windows系统内核源代码不开放,其功能通过大量(数以万计)的系统API来提供。这些API浩若烟海,直接使用非常困难。因此微软在其开发工具VC中,额外提供了一套以面向对象编程思想组织起来的类库,实现了对大部分核心系统API的封装,并提供合理的编程框架,以方便用户开发自己的应用程序。;;6;我们所说的MFC编程,并不是像C/C++语言那样,从main来写一个“程序”。而是利用MFC类库中提供的“基本”框架,“附加”我们自己要实现的功能,构成一个程序。 比如,在上一节课中的对话框程序中,我们只是写了一句代码,其他的程序打开、关闭、显示、控件效果、消息响应和传递。。。都是程序框架自己完成的。 ——是怎么实现的呢? ;一战结束前,一个叫路德维希 维特根斯坦 的人在战俘营里写了一本《逻辑哲学论》,提出: 世界可以分解为事实; 事实是由原子事实组成的; 一个原子事实是多个对象的组合; 对象是简单的; 对象形成了世界的基础。 50年后,面向对象编程,真的成了软件世界的基础。 ;2010年以后,OOP已经不怎么时髦了,虽然所有编程语言都会注明,“本人支持OOP。。。” 2013年,CMU计算机系放弃了基础课程中的OOP课程,理由是,OOP思想已经不再适用于云计算时代 云计算时代,通过大量并行,用蚂蚁搬家方式解决计算问题,每个计算单元都很小,因而是过程式的,大量计算单元并行运行,产生规模效应。 OOP反过程,同时反并行,因此并不适用于云计算。 /question整个世界是由具有自治能力的各种对象组成的,任何对象都具有某种特征和行为。 计算机是对象,有颜色、重量、品牌,可以开机、关机、播放音乐 猫是对象,有年龄、重量、品种,可以吃、喝、爬树 面向对象(C++)和面向过程(C)的最核心区别: 面向过程:类型、特征、行为是独立的。 面向对象:类型包含特征和行为。 ; 封装: 特征与行为的一体化 继承:由现有对象构成新对象 多态:不同对象的同一行为 产生不同效果 ;Class IamAFather { public: void GetMyName(); //我的名字是可以公开的 void GetMyGoodDeeds(); //我做的好事是要宣传的 protected: void GetMyAssert(); //我的财产需要保护,只有我 //和我的儿女能使用 private: void GetMyGuilty(); //罪过是要保密的, void ThinkItOver(); //心理活动只有自己知道 };;只让可信的对象知道自己的“底细”,对不可信的对象进行信息隐藏。 父亲愿意公开自己的good deeds,却只对自己的儿女公开财产。 对象暴露简单的接口就可以实现复杂的功能。 父亲经过一系列复杂的心理活动(调用了许多private函数),最后决定向神父忏悔自己的罪过。而对于神父来说,只能看到一个函数 Repent2Priest() 避免某一模块的行为对同一系统中其他模块 产生影响。——猫的颜色和计算机的颜色,是不同的。 ;继承使得某类的对象可以使用另外一类对象的特征和方法,表达了两个类“一般与特殊”的关系。 白马和马,白马是一种特殊的马,具有马的一般属性,又具有其特殊属性“白色”,因此可以从马中继承。 继承可以提高程序的可复用性。因此是OOP商业代码的核心价值。 一个企业,往往把底层代码写成一个类库,新员工加入后,能够迅速使用类库中的代码,通过继承方式扩展功能,产生价值。 当新员工变成“老员工”,准备跳槽的时候,发现自己手里只有一堆“继承后的代码”,离开公司的类库,啥事都做不了。;不同的对象,调用同样的方法,在不同环境下产生不同的动作。——实现接口重用 编译时多态——重载基类的非虚函数、运算符重载 运行时多态——重载基类的虚函数 由同一个基类派生得到的多个子类,在重载基类的虚函数后,就能够实现运行时的多态性。 ;继承表达 “一般与特殊”的关系。 组合表达 “整体与部分”的关系——直接在类B中声明A的对象。 例子:有两个类,头(class head)和耳朵(class ear)耳朵能听到声音ear.Listen() ,现在要求头也能听到声音。 继承法: class head : public ear {}; 组合法: class head{ ear m_ear; } 反继承: class ear : public head{};;17;MFC的封装,就是把独立的W

文档评论(0)

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

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

1亿VIP精品文档

相关文档