当您在 XMVECTOR 上调用默认构造函数时,我无法找到可靠的文档。
MSDN 说 XMMATRIX 默认构造函数不会将变量初始化为 0 ( http://msdn.microsoft.com/en-us/library/windows/desktop/ee420023(v=vs.85).aspx )。所以我的直觉是 XMVECTOR 也是如此,但不幸的是我在 MSDN 网站上找不到这个确认。
回到原来的问题:
// Trackball.h
class Trackball
{
...
XMVECTOR m_eye;
XMVECTOR m_position;
XMVECTOR m_up;
XMVECTOR m_rotateStart;
XMVECTOR m_rotateEnd;
...
}
// Trackball.cpp
Trackball::Trackball(void) :
...
m_eye(),
m_rotateStart(),
m_rotateEnd(),
m_zoomStart(),
m_zoomEnd(),
m_panStart(),
m_panEnd(),
...
{
}
但这只是使用默认构造函数来初始化变量对吗?因此,如果上述默认构造函数不初始化 XMVECTOR 成员的假设成立,那么我应该这样做吗?
// Trackball.cpp
Trackball::Trackball(void) :
...
m_eye(XMVectorZero()),
m_rotateStart(XMVectorZero()),
m_rotateEnd(XMVectorZero()),
m_zoomStart(XMVectorZero()),
m_zoomEnd(XMVectorZero()),
m_panStart(XMVectorZero()),
m_panEnd(XMVectorZero()),
...
{
}
这看起来很难看,但可能是对的。
感谢您的阅读并感谢您的帮助。