[英]c++ strange syntax
我不明白教程中的代码中的某些内容
第一个:中间的逗号“,”是什么? 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);
}
我很好奇,解释很简单
这是一个初始化列表。
它调用指定类的成员和父类的构造函数。
请注意,您只能在类的构造函数中使用它(因为它只发生在其构造函数中)。
[编辑]对于您的第一个问题,这是一种同时声明多个相同类型变量的方法。 请注意,它并不总是按预期工作: int * a, b
将声明一个int *
类型的变量a
和另一个int
类型的变量b
(不是指针)。
中间那个逗号“,”是什么意思?
像int i = 3, j = 4;
这样的语句与int i = 3; int j = 4;
相同int i = 3; int j = 4;
int i = 3; int j = 4;
所以, u32 TimeStamp = irrTimer->getTime(), DeltaTime = 0;
正在定义和初始化两个u32
类型的变量:一个名为TimeStamp
,另一个名为DeltaTime
。
为什么在一些带有奇怪括号的变量后面有一个“:”? 我猜他们正在用括号中的值初始化..?
没错:google for c++ member initialization list
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.