最近我发现程序中的一个错误是由于添加了额外的括号。
以下是我的代码。该程序只打印“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中编译了代码,结果是一样的。