1. 如果未定义默认构造函数:
加括号:类中POD标量类型会被初始化
无括号:类中POD标量类型不会被初始化
2. 如果定义了默认构造函数:
这种情况下此类就不是POD类类型,2种情况都会调用自定义的默认构造函数初始化。
wiki:
http://zh.wikipedia.org/wiki/POD_(%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1)
StackOverflow:
http://stackoverflow.com/questions/5211090/not-using-parentheses-in-constructor-call-with-new-c
这里有个有趣的案例:
class C1{
C1(int a=3){}
};
//以下调用均通过,而且调试默认参数值都是3.
C1 *x1=new C1;
C1 *x2=new C1();