C++编程(D)

beijing university of posts telecommunications

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: 调用者都 只能让 Window::draw() 被调用一次,做到 这些并不依赖于到 底对哪种Window 调用draw() [email protected] 15.2.5 使用多重继承 多重继承的最简单最明显的应用,就是利用它将两 个原本不相干的类“粘合”起来,作为第三个类的实 现的一部分 回顾以前讲到过的BB_ival_slider的(多重继承)实 现方式,其一个基类作为公用的抽象基类,提供界 面,另外一个则是受保护的具体类,提供细节 多重继承也使兄弟类之间能够共享信息,而又不会 在程序里引进对同一基类的依赖性,通常被称为 “钻石型继承diamond-shaped inheritance”,如 刚才提到的Radio和Clock Beijing University of Posts & Telecommunications Beijing [email protected] 使用多重继承 如果虚基类或者由虚基类直接派生的类是抽 象类,钻石型继承将特别容易控制 将此思想进一步推广,得到的逻辑结论就 是,组成应用的界面的抽象类的所有派生都 应该是虚的,这是最符合逻辑、最具有一般 性、也最灵活的解决方案 但是,由于历史的原因,作者没有这么设计 Beijing University of Posts & Telecommunications Beijing [email protected] 15.2.5.1 覆盖虚基类的函数 派生类可以覆盖其直接虚基类或者间接虚基类中 的虚函数,特别地,两个不同的类也可能覆盖了 来自虚基类的不同虚函数 不同的派生类可能覆盖其虚基类中的同一个函 数,这当且仅当某个覆盖类是从覆盖此函数的类 派生时,才可以这么做 如果两个类覆盖了同一个虚基类中的函数,但是 它们又互不覆盖,这个类层次结构就是错误的 一个为虚基类提供部分实现(但是并非全部实现) 的类通常被称为“混入类”(mixin.) Beijing University of Posts & Telecommunications Beijing [email protected] 15.3 访问控制 类中的一个成员可以是private,protected 或者public private:它的名字只能由...
View Full Document

This note was uploaded on 02/10/2014 for the course ECE C++ taught by Professor Xiaoshengtang during the Fall '13 term at BUPT.

Ask a homework question - tutors are online