【发布时间】:2014-02-08 00:02:21
【问题描述】:
假设我有一些简单的类/结构,除了数据和少数几个运算符之外没有其他任何东西。如果我理解的话,一个在 C++ 中只有数据的基本结构,就像 C 一样,占用的内存与成员一样多。例如,
struct SomeStruct { float data; }
sizeof(SomeStruct) == sizeof(float); // this should evaluate to true
我想知道的是,在类中添加运算符是否会使对象在内存中变大。例如
struct SomeStruct
{
public:
SomeStruct & operator=(const float f) { data = f; return this; }
private:
float data;
}
sizeof(SomeStruct) == sizeof(float) 的计算结果仍然是真的吗?是否有不会增加内存中对象大小的运算符/方法?
【问题讨论】:
标签: c++ object memory operators operator-overloading