2
可能重复:
different types of initialization in C++C++调用带括号的默认构造函数VS没有括号
有什么区别调用基类的构造类似
Foo afoo;
之间的所有vs
Foo afoo();
可能重复:
different types of initialization in C++C++调用带括号的默认构造函数VS没有括号
有什么区别调用基类的构造类似
Foo afoo;
之间的所有vs
Foo afoo();
是:第一个是变量定义,第二个是函数声明。现在,让我们讨论这两个词语之间的差异的更有趣的问题:
new Foo()
new Foo
是否有差别取决于Foo
及其成员的类型!
Foo
有一个明确的默认构造函数两个相同请注意,这也适用于类的成员。对于变量不能使用使用括号的形式,即以确保初始化对象,你需要使用
Foo aFoo = Foo();
如果没有明确的构造函数取一个参数,或者你不知道(例如,在模板代码) 。
感谢您的分解和遗憾,重复'?' – pyInTheSky 2012-01-12 19:14:08
是的,#2正在声明一个函数。 – 2012-01-12 18:45:57
是的,第一个构造了一个'Foo'类型的对象,第二个没有。 – 2012-01-12 18:46:26