1

新しい 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 サイクルを無駄にすることなく、クラスを構成するメモリ ブロックを自動的に初期化し、構文にコンストラクターを含めるとその目的が無効になるという印象を受けました。

その点で、誰かが私にそれがとても良い理由を説明したり、それを説明する記事にリンクしたりできるなら、私はそれを感謝します.

読んでくれてありがとう

4

1 に答える 1

4

あなたはただ言うことができますm_BoundingBox()。これはメンバーを値で初期化します。これは、クラス型のデフォルト コンストラクトとスカラー型のゼロ初期化を意味します。

于 2013-06-18T19:24:55.753 に答える