这是有效/便携/法人代码:访问非数组通过指针
class Vector3
{
public:
float& operator [] (const size_t i)
{
assert(i < 3);
return *(&x+i);
}
float x, y, z;
};
已经有相当这里我想用[]
操作,最终把数组中的元素的几个实例(以避免如果/切换语句)。我从来没有做过这种特定方法正在做的事情。我可以告诉它为什么会起作用(x,y和z是连续的),但它是否好(或至少可以)练习?
此外,代码是否需要#pragma pack 1
以保证无垫片包装,或者没有它可以工作吗?我之所以问是因为段实际上是从OGRE3D矢量类采取和我没有看到任何地方#pragma pack 1
。