c ++函数调用前的类型声明?

时间:2017-10-03 16:14:13

标签: c++ types syntax

我正在查看v8 javascript引擎(here's the github link)的源代码,并在parsing.cc的第33行,在函数中有这个语句:

Parser parser(info);

我只习惯在作业之前看到这样的类型声明,例如:

Parser myparser = Parser(...);

那么第一个例子是做什么的?为什么不在没有类型声明的情况下调用parser(info)

提前谢谢。

2 个答案:

答案 0 :(得分:4)

该行

Parser parser(info);

通过调用以Parser为参数的构造函数构造info对象。

这种构造对象的方法称为direct initialization

您也可以使用表格

Parser parser = Parser(info);

构造对象。这种构造对象的方法称为copy initialization

答案 1 :(得分:0)

您正在堆栈上构建Parser类型的对象。 (或者评论说取决于块范围,这可能是一个全局变量,无法从可用信息中辨别出来,但很可能是堆栈:) Object creation on the stack/heap?