美文网首页
网易云课堂(Boolan)C++ 第四周笔记

网易云课堂(Boolan)C++ 第四周笔记

作者: 淡淡的悲哀 | 来源:发表于2018-01-29 08:58 被阅读0次

    关于C++类的大小(size)

    1. 空类

    class AA{

    }; 

    #include<iostream>

    int main()

    {

    AA A;

    std::cout<<sizeof(A);

    }

    得到结果为:1  。 空类实际内存为0.但是在实际创建的时候会给一个地址,所以size为1.

    2.普通成员函数与静态数据成员

    在类AA与DD中,显然空函数与空类类似会给它分配一个内存地址,函数的大小取决于函数里的内容。而BB中int为4,静态数据成员没有被计入内存大小,它被放入global data members中,是一种特殊的全局变量。

    3.虚函数与继承


    32位操作系统下

    其中Fruit:

               int         4

               double  8

               char      1

               print 内部实际大小有关 0

               process 4

    合计                 17

    但是      内存会补齐为24

    Apple:

    其中继承了Fruit:

                     int         4

                     double  8

                     char      1

                     print 内部实际大小有关 0

                     process 4

    自己的:         

                     int       4

                     char    1

                     save    0                

    合计             22

    但是      内存会补齐为32

    虚函数size的为虚指针大小为4字节,虚指针指向虚表,当类内有多个虚函数时,内存上大小只有一个虚指针,多个虚函数被记录在虚表内。

    相关文章

      网友评论

          本文标题:网易云课堂(Boolan)C++ 第四周笔记

          本文链接:https://www.haomeiwen.com/subject/xpgtzxtx.html