C/C++程序基础 (七)继承和多态
2018-06-17 20:56:57来源:未知 阅读 ()
- 多态
- 编译时多态:重载
- 运行时多态:虚函数。根据运行时的类别获取正确的虚指针,从而定位正确的虚函数。
- 虚函数
- 虚函数指针:指向虚函数表。多重继承则含有多个基类的虚函数指针。
- 虚函数表:函数指针集合。普通继承,子类沿用父类的虚函数表,可以修改基类的虚函数表。
- 注意:虚函数依赖虚指针,虚指针位于对象内存空间。因此,多态在构造函数之后。
- 多重继承
- 优点:使用多个基类的接口。基类构造顺序与继承列表一致,与初始化列表无关。
- 问题:冗余基类导致的二义性。
- 解决方案:虚继承
- 虚继承
- vitual class ××
- 虚基类指针,每个类有且仅有一个虚基类指针。
- 注意:虚继承的虚函数表不可以增加,所以子类维护自己的虚函数指针。
- 纯虚函数
- 抽象基类:包含纯虚函数的类,这种类不可以实例化对象(存在未定义的函数)。
- 纯虚函数和虚函数:1)虚函数不强制子类重写,仅仅为了支持多态。2)纯虚函数主要在于设置接口形式,必须为子类实现。另外,会导致对象不可以实例化。
- 总结虚函数指针的问题:
- 单继承:一个虚函数指针
- 多重继承:多个虚函数指针,若增加新的虚函数,则修改第一基类的虚函数表
- 单虚继承:一个虚函数指针,若增加新的虚函数,则为子类增加一个虚函数指针
- 多重虚继承:多个虚函数指针,若增加新的虚函数,则为子类增加一个虚函数指针
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- C++ 转换函数搭配友元函数 2020-06-10
- C++ 自动转换和强制类型转换(用户自定义类类型) 2020-06-10
- C++ rand函数 2020-06-10
- C++ 友元函数 2020-06-10
- C++ 运算符重载 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash