繁体   English   中英

如何正确使用初始化语法来初始化结构?

[英]How do I correctly use initialization syntax to initialize a struct?

我想使用新C ++ 11中的初始化语法ZeroMem结构。 目前我这样做:

Mesh::Mesh(void) :
    m_bInitialized(false),
    m_BoundingBox(BoundingBox()), // <-- Is this right???
    m_numVertices(0),
    m_pVertexInfos(nullptr),
    m_pFaceIndices(nullptr),
    m_numFaces(0),
    m_numFacesIndices(0),
    m_materialIndex(0),
    m_faceType(NONE)
{
}

这似乎是诀窍,但它看起来有点难看,感觉不对。 有没有更好的办法?

我的印象是,使这种初始化语法如此优秀的原因在于它以某种方式自动初始化构成类的内存块,而不会浪费更多的CPU周期,而在语法中使用构造函数会失败。

在那个问题上,如果有人可以向我解释是什么让它变得如此美好,或者将我链接到解释它的文章,我将不胜感激。

谢谢阅读

你可以说m_BoundingBox() 这将对成员进行值初始化,这意味着类类型的默认构造和标量类型的零初始化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM