【问题标题】:C++ Object vs Struct Memory OverheadC++ 对象与结构内存开销
【发布时间】:2015-12-09 23:38:32
【问题描述】:

我需要为图像处理创建非常大的 RGB 值数组。对它们执行的实际操作很简单——只是正交投影,看看两种颜色有多相似——但每一位都对内存很重要。我正在考虑将图像存储为指向其中包含 3 个字符的结构的双指针,我认为这是最节省内存的方式,但我知道通常建议使用包装类。问题是创建类与结构以及使用某种包装器与使用双指针的内存开销是多么微不足道。

【问题讨论】:

    标签: c++ arrays memory struct


    【解决方案1】:

    完全没有区别

    class X
    {
      public: 
         T1 x;
         T2 y;
         T3 z;
    }
    

    struct X
    {
         T1 x;
         T2 y;
         T3 z;
    };
    

    如果您将虚函数添加到类中,是的,它将添加到存储中。但在classstruct 之间没有其他任何区别(事实上,struct 中也可以有虚拟成员 - 尽管通过具有成员函数和(非平凡的)构造函数仅适用于类)。

    【讨论】:

    • 感谢您的反馈
    猜你喜欢
    • 2017-10-25
    • 1970-01-01
    • 2014-05-14
    • 2013-11-26
    • 1970-01-01
    • 1970-01-01
    • 2011-04-17
    • 1970-01-01
    相关资源
    最近更新 更多