文档章节

c++对象模型

曾劲松
 曾劲松
发布于 2016/03/31 11:43
字数 335
阅读 12
收藏 1
  1. 对象中含有指针vptr指向该类的虚表,构造函数建立vptr。

  2. 虚表又含有用以支持RTTI的信息和一堆指向虚函数的指针

  3. vptr放在对象模型的最前端还是最后端与编译器实现有关。

1、C++在布局以及存取时间上的主要的额外负担是由virtual引起的,包括:

    a、virtual function机制,引入vptr以及vtbl,支持一个有效率的"执行期绑定" 

    b、virtual base class,用以实现"多次出现在继承体系中的base class,有一个单一而被共享的实例" 

    c、多重继承下,派生类跟第二个以及后续基类之间的转换

2、"指针的类型"会教导编译器如何解释某个特定地址中的内存内容以及其大小

    (void*指针只能够持有一个地址,而不能通    过它操作所指向的object)

3、C++通过class的pointers和references来支持多态,付出的代价就是额外的间接性。

    它们之所以支持多态是因为它们并不引发内存中任何"与类型有关的内存委托操作(type-dependent commitment)",

    会受到改变的,只有他们所指向的内存的"大小和内容的解释方式"而已。

© 著作权归作者所有

上一篇: 虚继承
下一篇: Data语义学
曾劲松
粉丝 5
博文 200
码字总数 141434
作品 0
武汉
私信 提问
《深度探索C++对象模型》读书笔记(1)

《深度探索C++对象模型》读书笔记(1)。 在C++中,有两种class data members:static和nonstatic,以及三种class member functions:static、nonstatic和virtual.已知下面这个class Point声...

长平狐
2012/10/08
82
0
C++对象内存模型---数据封装

“C++是C的超集”,这句话里包含了两个问题: 1. C++兼容C; 2. C++在C之上进行了扩展; 那C++在C之上进行了哪些扩展呢?众所周知,C++内置了众多编程机制、支持众多编程风格:面向过程、基于...

rexlv
2013/05/05
437
0
C语言编程基础新手学习经典练习题和答案详解入门必备

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界
2018/05/13
0
0
C语言/C++编程基础入门学习重要知识之i++和++i的区别

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界
2018/03/17
0
0
C#转C++的一点分享

从C#转C++有段时间了,一直想分享点什么,但又不太好意思分享,毕竟自己做C++的时间不太长,最近感觉自己已能胜任现有工作,想分享的想法又强了点,前几天看到这样一篇博客《那些年·我们读过的专业...

爱情经纬线
2014/01/17
4K
11

没有更多内容

加载失败,请刷新页面

加载更多

64.监控平台介绍 安装zabbix 忘记admin密码

19.1 Linux监控平台介绍 19.2 zabbix监控介绍 19.3/19.4/19.6 安装zabbix 19.5 忘记Admin密码如何做 19.1 Linux监控平台介绍: 常见开源监控软件 ~1.cacti、nagios、zabbix、smokeping、ope...

oschina130111
今天
10
0
当餐饮遇上大数据,嗯真香!

之前去开了一场会,主题是「餐饮领袖新零售峰会」。认真听完了餐饮前辈和新秀们的分享,觉得获益匪浅,把脑子里的核心纪要整理了一下,今天和大家做一个简单的分享,欢迎感兴趣的小伙伴一起交...

数澜科技
今天
7
0
DNS-over-HTTPS 的下一代是 DNS ON BLOCKCHAIN

本文作者:PETER LAI ,是 Diode 的区块链工程师。在进入软件开发领域之前,他主要是在做工商管理相关工作。Peter Lai 也是一位活跃的开源贡献者。目前,他正在与 Diode 团队一起开发基于区块...

红薯
今天
6
0
CC攻击带来的危害我们该如何防御?

随着网络的发展带给我们很多的便利,但是同时也带给我们一些网站安全问题,网络攻击就是常见的网站安全问题。其中作为站长最常见的就是CC攻击,CC攻击是网络攻击方式的一种,是一种比较常见的...

云漫网络Ruan
今天
11
0
实验分析性专业硕士提纲撰写要点

为什么您需要研究论文的提纲? 首先当您进行研究时,您需要聚集许多信息和想法,研究论文提纲可以较好地组织你的想法, 了解您研究资料的流畅度和程度。确保你写作时不会错过任何重要资料以此...

论文辅导员
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部