1

チュートリアルの最初のコードのコードでいくつかのことを理解して
いません。そのコンマ「、」は途中で何をしていますか? mb はオーバーロードされた演算子ですか?

u32 TimeStamp = irrTimer->getTime(), DeltaTime = 0;

次に、クラス CharacterDemo の奇妙なコンストラクターがあります。変数の後に奇妙な括弧が付いているのはなぜですか? 括弧内の値で初期化されていると推測しています..?

CharacterDemo::CharacterDemo()
:
m_indexVertexArrays(0),
m_vertices(0),
m_cameraHeight(4.f),
m_minCameraDistance(3.f),
m_maxCameraDistance(10.f)
{
    m_character = 0;
    m_cameraPosition = btVector3(30,30,30);
}

私は好奇心旺盛で、説明は非常に感謝しています

4

2 に答える 2

4

初期化リストです。

指定されたクラスのメンバーと親クラスのコンストラクターを呼び出します。

クラスのコンストラクターでのみ使用できることに注意してください (これは、クラスの構築時にのみ発生するためです)。

[編集]最初の質問については、同じ型の複数の変数を一度に宣言する方法です。常に期待どおりに機能するとは限らないことに注意してください: typeint * a, bの変数を宣言し、typeaint *別の変数(ポインターではない) を宣言します。bint

于 2012-11-16T00:34:58.460 に答える
2

真ん中のカンマ「、」は何をしているのですか?

次のような文int i = 3, j = 4;は次と同じですint i = 3; int j = 4;

したがって、 type の 2つu32 TimeStamp = irrTimer->getTime(), DeltaTime = 0;の変数を定義して初期化しています。u32TimeStampDeltaTime

いくつかの変数の後に変な角かっこが付いた「:」があるのはなぜですか? 括弧内の値で初期化されていると推測しています..?

正解ですc++ member initialization list

于 2012-11-16T00:36:13.977 に答える