C++ c++;奇怪的语法
我不理解教程中代码中的某些内容C++ c++;奇怪的语法,c++,syntax,C++,Syntax,我不理解教程中代码中的某些内容 第一个:逗号“在中间做什么?”它是一个重载操作符吗 u32 TimeStamp = irrTimer->getTime(), DeltaTime = 0; 接下来,我从CharacterDemo类中得到了一个奇怪的构造函数,为什么在一些带有奇怪括号的变量后面有“:”呢?我猜它们是用括号中的值初始化的 CharacterDemo::CharacterDemo() : m_indexVertexArrays(0), m_vertices(0), m_camer
第一个:逗号“在中间做什么?”它是一个重载操作符吗
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);
}
我很好奇,解释得很贴切这是一个很好的解释
它调用指定类的成员和父类的构造函数
注意,您只能在类的构造函数中使用它(因为它只发生在类的构造中)
[edit]对于第一个问题,这是一种同时声明同一类型多个变量的方法。请注意,它并不总是按预期工作:int*a,b
将声明类型为int*
的变量a
,以及类型为int
的另一个变量b
(不是指针)。它是一个变量
它调用指定类的成员和父类的构造函数
注意,您只能在类的构造函数中使用它(因为它只发生在类的构造中)
[edit]对于第一个问题,这是一种同时声明同一类型多个变量的方法。请注意,它并非总是按预期工作:int*a、b
将声明类型为int*
的变量a
,以及类型为int
的另一个变量b
(不是指针)
<逗号“在中间做什么?< /P>”
像inti=3,j=4这样的语句代码>与inti=3相同;int j=4代码>
因此,u32 TimeStamp=irrTimer->getTime(),DeltaTime=0
正在定义和初始化两个类型为u32
的变量:一个名为TimeStamp
,另一个名为DeltaTime
为什么有些变量后面有“:”和奇怪的括号?我猜它们是用括号中的值初始化的
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);
}
这是正确的:谷歌搜索c++成员初始化列表
<逗号“在中间做什么?< /P>”
像inti=3,j=4这样的语句代码>与inti=3相同;int j=4代码>
因此,u32 TimeStamp=irrTimer->getTime(),DeltaTime=0
正在定义和初始化两个类型为u32
的变量:一个名为TimeStamp
,另一个名为DeltaTime
为什么有些变量后面有“:”和奇怪的括号?我猜它们是用括号中的值初始化的
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);
}
这是正确的:google forc++成员初始化列表
提示:u32
是一种类型。另外,提示:u32
是一种类型。另外,+1提及一般应避免的原因,因为太多人不愿意检查其工作原理的细节,很快就会感到困惑。+1提及一般应避免的原因,因为太多人不愿意检查其工作原理的细节,很快就会感到困惑。