对类构造函数感到困惑

时间:2015-12-14 04:26:32

标签: c++

最近我发现程序中的一个错误是由于添加了额外的括号。

以下是我的代码。该程序只打印“end main”

type Even=
|Zero
|Succ of Odd
and Odd = |Succ_ of Even

但是当我在main函数中删除括号时,会打印“init”,“finit”和“end main”,这就是我想要的。

#include <stdio.h>

class A
{
public:
    A()
    {
        printf("init\n");
    }
    A(A& a)
    {
        printf("copy constructor");
    }
    ~A()
    {
        printf("finit\n");
    }
};

int main()
{
    A a();
    printf("end main\n");
}

有人可以告诉我为什么吗? 我在VS2013和gcc4.7.2中编译了代码,结果是一样的。

0 个答案:

没有答案