data member的布局(data member layout)
已知下面一组data members:
class
Point3d
...
{
public:
//...
private:
float x;
static List<Point3d*> *freeList;
float y;
static const int chunkSize = 250;
float z;
} :
public:
//...
private:
float x;
static List<Point3d*> *freeList;
float y;
static const int chunkSize = 250;
float z;
} :
Nonstatic data members 在class object中的排列顺序将和其被声明的顺序一样,任何中间介入的static data members 如freeList 和chunkSize都不会被放进对象布局中。
在上述例子中,每个Point3d对象是由三个float组成,次序是x,y,z,static data members存放在程序的data segment 中,和个别的class objects无关。
。。。。。