<分区>
Possible Duplicate:
different types of initialization in C++
调用基本构造函数之间有什么区别吗
Foo afoo;
对比
Foo afoo();
<分区>
Possible Duplicate:
different types of initialization in C++
调用基本构造函数之间有什么区别吗
Foo afoo;
对比
Foo afoo();
最佳答案
是的:第一个是变量定义,第二个是函数声明。现在让我们讨论这两个表达式之间的区别这个更有趣的问题:
new Foo()
new Foo
是否有区别取决于Foo
及其成员的类型!
Foo
有一个明确的默认构造函数,那么两者是相同的请注意,这也适用于类的成员。对于变量,您不能使用使用括号的形式,即要确保对象已初始化,您需要使用
Foo aFoo = Foo();
如果没有显式构造函数接受参数或者您不知道(例如在模板代码中)。
关于C++ 调用带括号的默认构造函数与不带括号的对比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8840523/