首页 > 系统相关 >C++类的内存结构

C++类的内存结构

时间:2022-11-15 19:55:09浏览次数:39  
标签:字节 C++ void virtual int base 内存 public 结构

 

第一种

这个类是个空类  sizeof 会占用一个字节  new t 也是占用一个字节 但作为 其他类的成员变量可能会占用 1-2-4-8 字节 这个是类的内存对齐导致

 

第2种

这个类是个空类 但他有虚函数 sizeof 会占用 一个指针的内存 x86 4字节 x64 8字节   也就是他需要一个地址存储虚表的地址

 

第3种

单继承

 

第4种 

多继承 这里我直接用菱形继承了 懒得写了  (这里我说的主继承是 base类 次继承是child类)

 

 

代码

#include<iostream>

class base
{
public:
    virtual void cat()
    {

    }
    virtual void baset()
    {

    }
    int baseint = 1;
};
class child :public base
{
public:
    virtual void cat()
    {

    }
    virtual void childt()
    {
    }
    int childint = 2;
};

class son :public base, child
{
public:
    virtual void cat()
    {

    }
    virtual void sont()
    {
    }
    int sonint = 3;
};



int main()
{
    son s;
}

 

标签:字节,C++,void,virtual,int,base,内存,public,结构
From: https://www.cnblogs.com/atggg/p/16893673.html

相关文章

  • redis底层都有哪些数据结构?带你了解redis是如何存储数据的
    文章目录​​写在前面​​​​键值对的存储——哈希​​​​哈希冲突​​​​redis解决哈希冲突过多的方式——rehash​​​​双向链表​​​​数组​​​​压缩链表​​​......
  • 数据结构
    \(log1+log2+log3+……+logn=O(nlogn)\)\(1+\frac{1}{2}+\frac{1}{3}+\frac{1}{4}+……\frac{1}{n}=O(logn)\)减而治之是与递归相关的,每经过一层递归,问题的规模都会缩小,......
  • windows--cmake与c++的使用教程(3)
    概述本文基于前文环境本节目标:编写用于创建c++动态库的cmake脚本1创建动态库关键语法:add_library2创建动态库核心脚本解释add_library(项目名称SHARED代......
  • windwos cmake与c++的使用教程(2)
    概述本文基于前文环境一个基于cmake的hellocmake本节目标:使用VSCode创建cmake脚本文件,输出hellocmake1准备因为cmake执行过程可能有新的文件生成,所以,这里新......
  • 分页内存与非分页内存的疑惑
    参考:https://bbs.pediy.com/thread-160200.htm张帆《驱动详解》中讲到:当程序的中断请求级在DISPATCH_LEVEL之上时(包括DISPATCH_LEVEL层),程序只能使用非分页内存,否则将......
  • C++——各版本新特性
    参考:https://www.cnblogs.com/yrm1160029237/p/14246166.htmlC++11auto关键字decltype关键字nullptr字面值constexpr关键字for(declaration:expression)Lambda表......
  • C/C++ Qt MdiArea 多窗体组件应用
    MDI多窗体组件,主要用于设计多文档界面应用程序,该组件具备有多种窗体展示风格,其实现了在父窗体中内嵌多种子窗体的功能,使用MDI组件需要在UI界面中增加mdiArea控件容器,我们所......
  • tree 动态添加、删除树结构数据
    tree.vue组件<template><div><div@click="getData":style="getDetph(currentItem.level)"class="li"><spanclass="icon"></span>......
  • linux内存介绍
    [yunwei@192~]#freetotalusedfreesharedbuff/cacheavailableMem:323601921512724010232428767304......
  • Java 内存分区之什么是 CCS区 Compressed Class Space 类压缩空间
    https://blog.csdn.net/qq_27093465/article/details/106760961 Java内存分区之什么是CCS区CompressedClassSpace类压缩空间  了解到什么是ccs区,一般都是实际......