C++类的内存结构

 

第一种

这个类是个空类  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;
}

 

posted @ 2022-11-15 19:50  Atggg  阅读(70)  评论(0)    收藏  举报