c++ 父类 子类 虚表占用内存空间情况
#include <iostream>
using namespace std;
class C {};
class A:public C {
private:
long a;
long b;
long c;
public:
A(long a,long b,long c){
this->a=a;this->b=b;this->c=c;
}
virtual void A_func(){};
// void A_func();
};
class B:public A{
private:
long d;
public:
B(long a1,long a2,long a3,long a4):A(a1,a2,a3){
d=a4;
}
void B_func();
};
int main() {
A x(1,2,3);
B y(1,2,3,4);
return 0;
}
通过打印可知道
(gdb) p x
$1 = (A) {<C> = {<No data fields>}, _vptr.A = 0x1004030d0 <vtable for A+16>, a = 1, b = 2, c = 3}
(gdb) p y
$2 = (B) {<A> = {<C> = {<No data fields>}, _vptr.A = 0x1004030f0 <vtable for B+16>, a = 1, b = 2, c = 3}, d = 4}
(gdb) p sizeof(x)
$3 = 32
(gdb) p sizeof(y)
$4 = 40
当c为空的时候,c不占内存,看最底层的B类他继承了A类的大小,额外自己的成员变量极为40/8 =5个
c++ 父类 子类 虚表占用内存空间情况的更多相关文章
- C++的引用类型的变量到底占不占用内存空间?
——by karottc 分析一下 C++ 里面的引用类型(例如: int &r = a; )中的 r 变量是否占用内存空间呢?是否和 int *p = &a; 中的 p 变量 ...
- C语言中计算变量占用内存空间
C语言中计算变量占用内存空间 在C语言中通常用[sizeof]运算符计算变量占内存空间,如下面的例子:
- Linux中查看进程占用内存的情况【转】
转自:http://hutaow.com/blog/2014/08/28/display-process-memory-in-linux/ Linux中查看某个进程占用内存的情况,执行如下命令即可,将 ...
- 获取本机内存使用信息、DataTable占用内存空间
相当于windows系统中的任务管理器,功能是通过系统的API实现的本机的监视,代码如下 using System;using System.Collections.Generic;using Sys ...
- Visual Studio 2017 如何 监控当前变量 占用内存空间大小
在进行VS调试时 大家是否想知道当前变量 占用了内存多少空间呢 这对系统调优还是很有帮助的吧
- 调整JVM占用内存空间方法
JVM默认占用空间为64M 调整方法如下图 在虚拟机参数中调整为80M 调试可以用 Byte[] arr=new Byte[1024*1024*64];
- 查询sql server占用内存的情况
se master go select * from sysperfinfo where counter_name like '%Total Server Memory (KB)%' go
- Java中的String到底占用多大的内存空间?你所了解的可能都是错误的!!
写在前面 最近小伙伴加群时,我总是问一个问题:Java中的String类占用多大的内存空间?很多小伙伴的回答着实让我哭笑不得,有说不占空间的,有说1个字节的,有说2个字节的,有说3个字节的,有说不知道 ...
- [PHP] pmap可以查看进程占用内存的详细情况
pmap后面跟进程id,就可以查看进程的详细情况了,例如下面php的进程 可以看到php扩展占用内存的情况,方便进行查询问题 00007fb3fa4bf000 44K r-x-- /usr/lib64 ...
随机推荐
- ipconfig提示不是内部或外部命令
昨天因为公司断网,重新连上之后ip地址变了,于是就想看看现在的ip是什么 输入ipconfig,回车 提示不是外部和内部命令,是因为系统在本路径下未找到ipconfig.exe系统,所以无法识别ipc ...
- 02:HTML
HTML介绍 Web服务本质 import socket sk = socket.socket() sk.bind(("127.0.0.1", 8080)) sk.listen(5 ...
- Java中最大的数据结构:LinkedHashMap了解一下?
前言 Map 家族数量众多,其中 HashMap 和 ConcurrentHashMap 用的最多,而 LinkedHashMap 似乎则是不怎么用的,但是他却有着顺序.两种,一种是添加顺序,一种是访 ...
- ThreadPoolExecutor参数详解
ThreadPoolExecutor全部参数的构造函数 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long ke ...
- 痞子衡嵌入式:在串口波特率识别实例里逐步展示i.MXRT上提升代码执行性能的十八般武艺
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是在串口波特率识别实例里逐步展示i.MXRT上提升代码执行性能的十八般武艺. 恩智浦 MCU SE 团队近期一直在加班加点赶 SBL 项目 ...
- 一次鞭辟入里的 Log4j2 异步日志输出阻塞问题的定位
一次鞭辟入里的 Log4j2 日志输出阻塞问题的定位 问题现象 线上某个应用的某个实例突然出现某些次请求服务响应极慢的情况,有几次请求超过 60s 才返回,并且通过日志发现,服务线程并没有做什么很重的 ...
- Cobra框架使用手册
cobra框架使用手册 cobra是go语言的一个库,可以用于编写命令行工具. 概念 Cobra 结构由三部分组成:命令 (commands).参数 (arguments).标志 (flags).最好 ...
- sshpass用法介绍
参考文章:http://www.mamicode.com/info-detail-1105345.html https://www.jianshu.com/p/a2aaa02f57dd p.p1 { ...
- Linux创建ftp并设置权限以及忘记ftp帐号(密码)修改 (转)
忘记ftp密码修改方法:1.登录服务器 cd /etc/vsftpdcat ftpusers找到对应的ftp用户名 (如果用户名也忘记了 那么 cd /etc 然后cat passwd 查看用户 ...
- 关于easyswoole实现websocket聊天室的步骤解析
在去年,我们公司内部实现了一个聊天室系统,实现了一个即时在线聊天室功能,可以进行群组,私聊,发图片,文字,语音等功能,那么,这个聊天室是怎么实现的呢?后端又是怎么实现的呢? 后端框架 在后端框架上,我 ...