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

这是一个初始化列表

它调用指定类的成员和父类的构造函数。

请注意,您只能在类的构造函数中使用它(因为它只发生在其构造中)。

[编辑]对于您的第一个问题,这是一次声明多个相同类型的变量的方法。请注意,它并不总是按预期工作:int * a, b将声明一个a类型的变量int *和另一个b类型的变量int(不是指针)。

于 2012-11-16T00:34:58.460 回答
2

中间那个逗号“,”在做什么?

语句 likeint i = 3, j = 4;int i = 3; int j = 4;

因此,u32 TimeStamp = irrTimer->getTime(), DeltaTime = 0;定义和初始化两个类型的变量u32:一个是命名TimeStamp的,另一个是命名的DeltaTime

为什么在一些带有奇怪括号的变量后面有一个“:”?我猜他们正在用括号中的值初始化..?

没错:谷歌搜索c++ member initialization list.

于 2012-11-16T00:36:13.977 回答