- 1、本文档共33页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]C第八章继承与多态
第八章 继承与多态 8.1 继承与派生的概念 8.1 继承与派生的概念 8.1.1 类的派生与继承 8.1.1 类的派生与继承 8.1.2 公有派生与私有派生 8.1.2 公有派生与私有派生 8.1.3 派生类的构造函数与析构函数 8.1.3 派生类的构造函数与析构函数 8.1.3 派生类的构造函数与析构函数 8.2 多重继承与派生类成员标识 8.2 多重继承与派生类成员标识 8.2 多重继承与派生类成员标识 8.2 多重继承与派生类成员标识 8.3 虚基类 8.3 虚基类 8.3 虚基类 8.4 派生类应用讨论 8.4 派生类应用讨论 8.5 MFC基础类及其层次结构 8.6 多态性与虚函数 8.6 多态性与虚函数 8.6.1 虚函数的定义 8.6.1 虚函数的定义 8.6.2 纯虚函数 8.6.2 纯虚函数 8.6.2 纯虚函数 8.6.2 纯虚函数 8.6.3 动态联编 8.7 MFC的消息映射与命令传递 8.7 MFC的消息映射与命令传递 8.7 MFC的消息映射与命令传递 CWinApp类检索和派送消息给相应的窗口函数,但是所有的MFC窗口函数都使用同一个的窗口函数,而不是有各自的窗口函数。MFC把设计窗口的任务细化为设计若干消息处理函数,程序员要做的是为每一个要处理的消息提供一个消息处理(Handling Messages)函数,然后系统通过MFC提供一套消息映射系统(messages mapping system)来调用相应的消息处理函数。 消息映射的模型: 首先定义一个Msgmap的结构: struct Msgmap{ UINT nMessage; //UINT为无符号整型数unsigned int LONG(*pfn)(HWND,UINT,WPARAM,LPARAM);//指向函数的32位长指针 }; 以这样的结构组成一个数组,以nMessage(消息)为关键字进行排序可以很快找到所需要的指向消息处理函数的指针,进而进入消息处理函数进行消息处理。 MFC根据消息处理函数的不同,把消息分为三类: 1.窗口消息:是以WM_开头,除WM_COMMAND消息以外的所有消息。 2.控制通知消息:控制通知消息是以 WM_COMMAND形式封装的来自子窗口的通知消息。 3.命令消息:是以WM_COMMAND形式封装的来自菜单、工具栏,加速键的通知消息。 * * 第八章 继承与多态 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上 ,调整部分成员的特性,也可以增加一些新成员。 多态性(polymorphism)也是面向对象程序设计的标志性特征。多态性是考虑在不同层次的类中,以及在同一类中,同名的成员函数之间的关系问题。函数的重载,运算符的重载,都属于多态性中的编译时的多态性。运行时的多态性,这是以虚基类为基础的多态性。 8.1 继承与派生的概念 8.3 虚基类 8.2 多重继承与派生类成员标识 8. 5 MFC基础类及其层次结构 8. 7 MFC的消息映射与命令传递 8. 6 多态性与虚函数 8.4 派生类应用讨论 层次概念是计算机的重要概念。对类(class)分层,提供类型/子类型的关系,这是通过继承(inheritance)的机制获得的。C++通过类派生(class derivation)的机制来支持继承。被继承的类型称为基类(base class)或超类(superclass),而新产生的类为派生类(derived class)或子类(subclass),反映了事物之间的联系,事物的共性与个性之间的关系。从工作量上看,工作量少,重复的部分可以从基类继承来,不需要单独编程。 8.1.1 类的派生与继承 8. 1.2 公有派生与私有派生 8. 1.3 派生类的构造函数与析构函数 由基类派生出派生类的定义的一般形式为 class 派生类名:访问限定符 基类名1《,访问限定符 基类名2,……,访问限定符 基类名n》 { 《 《private: 》 成员表1;》//派生类增加或替代的私有成员 《public: 成员表2;》//派生类增加或替代的公有成员 《protected: 成员表3;》//派生类增加或替代的保护成员 } 其中基类1,基类2,……是已声明的类。 派生出来的新类同样可以作为基类再继续派生出更新的类,依此类推形成一个层次结构。直接参与派生出某类称为直接基类,而基类的基类,以及更高层的基类称为间接基类。 在
文档评论(0)