【发布时间】:2020-01-30 06:59:06
【问题描述】:
我对以下代码有疑问(c++) 它只有一行。
if (mkvparser::EBMLHeader().Parse(m_reader, pos))
这里mkvparser是命名空间,EBMLHeader在mkvparser中。
EBMLHeader() 表示构造函数,在构造完不带参数的EBMLHeader后, 然后访问 Parse 函数??
这是下面两行的快捷方式吗?
mkvparser::EBMLHeader ebmlclass();
ebmlclass.parse(m_reader, pos)
我说的对吗?
请解释一下这段代码。
总代码在下面的链接中。 https://github.com/zaps166/libsimplewebm/blob/master/WebMDemuxer.cpp
【问题讨论】:
-
是的,你是对的。
-
mkvparser::EBMLHeader ebmlclass();将被视为函数声明而不是变量声明。请改用mkvparser::EBMLHeader ebmlclass;。