繁体   English   中英

C++奇怪的语法

[英]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.

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