标签: c++ default-constructor
可能重复: different types of initialization in C++
调用基础构造函数(如
Foo afoo;
VS
Foo afoo();
答案 0 :(得分:2)
是:第一个是变量定义,第二个是函数声明。现在让我们讨论一下这两个表达式之间差异的更有趣的问题:
new Foo() new Foo
是否存在差异取决于Foo及其成员的类型!
Foo
请注意,这也适用于类的成员。对于变量,您不能使用括号使用表单,即为了确保对象已初始化,您需要使用
Foo aFoo = Foo();
如果没有明确的构造函数接受参数或您不知道(例如在模板代码中)。