可能重複:
Classes store data members in sequential memory?類變量 - 對齊
只想問,爲什麼下面是正確的:
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)爲單位。在兩個變量之間不能存在破碎洞,從而讓這個運算符返回一個錯誤的值?
如果你需要索引,爲什麼不把它'模板類的Vector3 {市民:性病::陣列 XS; };'? –
Fanael