可能重复:
类将数据成员存储在顺序内存中?
只是想问为什么以下是正确的:
template<class T>
class Vec3 {
public:
// values
T x,y,z;
// returns i-th komponent (i=0,1,2) (RHS array operator)
const T operator[] (unsigned int i) const {
return *(&x+i);
}
}
或者换句话说:为什么总是保证 x、y 和 z 在内存中总是相隔 sizeof(T) 单位。在这两个变量之间不能有碎片漏洞,从而让这个运算符返回一个假值吗?