• C++类成员在内存中的存储及对齐方式


    前言:数据对齐的基本理论参见文章:http://www.cnblogs.com/MyBlog-Richard/articles/5993448.html

    一、空类的大小

      C++中空类的大小是1,这是因为空类也可以被实例化,为了确保每一个实例在内存中都有一个独一无二的地址,编译器往往隐含给一个空类加一个字节。

    二、类中的成员函数与非虚成员函数

      类中的非虚成员函数不占用空间,虚函数表占用四个字节,只要有虚函数(无论有几个)都只占用四个字节。

    三、派生类与基类

      派生类继承基类的所有成员(包括私有数据成员),派生类的大小是在基类的大小的基础上再增加自己数据成员的空间。

    四、虚表与类数据成员

      虚函数表首先存入内存中,然后是数据成员。

    五、类的与结构体

      类的对其规则与结构体基本一致,即取数据成员本身的对其数与编译器默认对齐数之间取小的那个数作为实际对齐数。

    六、类的数据成员

      类的数据成员按其声明顺序加入内存,(与其访问权限无关,即无论public,private,protected的数据成员,只看其声明顺序)

    七、static 数据成员不占用类的空间,对其派生类亦是如此。

  • 相关阅读:
    人工智能应用卷积神经网络对食道癌的诊断结果--笔记
    面向对象设计
    结构化软件测试----白盒测试技术
    内聚与耦合的实例分析
    图书预定系统
    SQL小技巧
    Keras中RNN、LSTM和GRU的参数计算
    Keras+Tensorboard
    Floyd算法
    生成随机整数
  • 原文地址:https://www.cnblogs.com/MyBlog-Richard/p/5993610.html
Copyright © 2020-2023  润新知