gpt4 book ai didi

c++ - 如何在构造函数中正确初始化 XMVECTOR?

转载 作者:行者123 更新时间:2023-11-28 03:14:29 28 4
gpt4 key购买 nike

我无法找到有关在 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()),
...
{
}

这看起来很丑,但可能是对的。

感谢阅读并感谢您的帮助。

最佳答案

我认为你的方法是正确的,如果你觉得它很丑,你可以把它放在构造函数体中,虽然它会损失一些性能,因为初始化列表只调用复制构造函数。如果您想查看 XMVECTOR 的默认构造函数做什么,您可以在 Debug模式下运行您的程序并在监 Windows 口中查看。

关于c++ - 如何在构造函数中正确初始化 XMVECTOR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17373812/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com