C++ 为什么';";foo f()&引用;调用类的构造函数";福;?

C++ 为什么';";foo f()&引用;调用类的构造函数";福;?,c++,constructor,execution,C++,Constructor,Execution,可能重复: 我碰到了以下问题。我创建了两个foo实例。 然后我意识到,foof()未执行类的构造函数。为什么呢 class foo{ public: foo() {cout <<"executed contructor...";} }; int main() { foo f(); // doesn't run the ctor???? why? foo f2; // this one does execute the ctor system("

可能重复:

我碰到了以下问题。我创建了两个foo实例。 然后我意识到,
foof()未执行类的构造函数。为什么呢

class foo{
public:
    foo() {cout <<"executed contructor...";}
};

int main() {
    foo f(); // doesn't run the ctor???? why?
    foo f2; // this one does execute the ctor


    system("pause");
    return 0;
}
class-foo{
公众:

foo(){cout第一个声明了一个函数。尝试访问名为
f
的对象。编译器会抱怨如下:f具有非类类型
foo()
,这意味着它是一个不带参数的函数,返回类型为
foo
的对象。第一个声明函数。尝试访问名为
f
的对象。编译器会抱怨如下:f具有非类类型
foo()< /代码>,这意味着它是一个不带参数的函数,返回一个类型为<代码> fO< <代码>的对象。< /p> < p>检查C++ FAQ问题10.2:

[10.2]列表x;和列表x()之间有什么区别吗


< P> < P> > P>检查C++ FAQ问题10.2:< /P> [10.2]列表x;和列表x()之间有什么区别吗

查看前面的问题
foo f3(foo());
是最麻烦的解析示例。
foo f();
只是一个稍微麻烦的解析。查看前面的问题
foo f3(foo());
是最麻烦的解析示例。
foo f();
只是一个稍微麻烦的解析。