A *pa = new A();
A *pa2 = new A;
如果A是空类,那么以上两种写法没有区别,但是写一个空类是无意义的。
类A中有成员变量则带括号的初始化会把一些成员变量有关的内存清0,但不是整个对象内部全部清0(无构造函数)。
有构造函数时,两种写法是一样的,初始化一般在构造函数里做。
除了对类的new,如果是基本类型如下
int *pa3 = new int;//初值随机
int *pa4 = new int();//初值0
int *pa5 = new int(100);//初值100