虚继承总结(重点:虚继承与虚函数)
来源:互联网 发布:相片冲印软件 编辑:程序博客网 时间:2024/04/30 13:30
虚继承常考题目:
下面我们进行分析:
因为每个存在虚函数的类都要有一个4字节的指针指向自己的虚函数表,所以每种情况的类a所占的字节数应该是没有什么问题的。
那么类b的字节数怎么算呢?看“第一种”和“第三种”情况采用的是虚继承,那么这时候就要有这样的一个指针vptr_b_a,这个指针叫虚类指针,也是四个字节;还要包括类a的字节数,所以类b的字节数就求出来了。而“第二种”和“第四种”情况则不包括vptr_b_a这个指针,这回应该木有问题了吧。
c++重载、覆盖、隐藏的区别和执行方式
成员函数被重载的特征
(1)相同的范围(在同一个类中);
(2)函数名字相同;
(3)参数不同;
(4)virtual 关键字可有可无。
“覆盖”是指派生类函数覆盖基类函数,特征是:
(1)不同的范围(分别位于派生类与基类);
(2)函数名字相同;
(3)参数相同;
(4)基类函数必须有virtual 关键字。
“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,特征是:
(1)如果派生类的函数与基类的函数同名,但是参数不同,此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。
(2)如果派生类的函数与基类的函数同名,但是参数相同,但是基类函数没有virtual 关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)。
小结:说白了就是如果派生类和基类的函数名和参数都相同,属于覆盖,这是可以理解的吧,完全一样当然要覆盖了;如果只是函数名相同,参数并不相同,则属于隐藏。
重载:看参数。
隐藏:用什么就调用什么。
覆盖:调用派生类。
参考:
http://www.cnblogs.com/BeyondAnyTime/archive/2012/06/05/2537451.html
- 虚继承总结(重点:虚继承与虚函数)
- 继承与虚函数
- 继承与虚函数
- 继承与虚函数
- 虚函数与继承
- 虚函数与继承
- 虚继承与虚函数继承
- 虚函数继承与虚继承
- 虚函数继承与虚继承
- 虚继承与虚函数继承
- 虚继承与虚函数继承
- 虚继承与虚函数继承
- 继承与虚继承
- 继承与虚继承
- 多态 继承 虚函数总结
- 虚继承与虚函数
- 虚继承与虚函数
- 虚函数与虚继承
- docker笔记
- Reverse Linked List
- 歌词
- 怎么解决上传文件时winSCP报错误码3(如何用root帐号登录winscp)
- 1619-7 张良 十月五号总结 [连续第五天]
- 虚继承总结(重点:虚继承与虚函数)
- jquery中的trigger和triggerHandler区别
- maple18的plot绘图真怪异
- App网络传输协议(Json、XML、protobuf)
- HTTP协议简介
- DataStructure_5.String
- (GeekBand)C++面向对象高级编程(上)第一周笔记(2)
- ESP8266 NodeMCU 笔记汇总
- 性能优化之省电篇