第1种:ATEST *test = new ATEST();
这种是指定调用ATEST无参构造函数,创建一个ATEST对象,所创建的对象存储地址赋值给test指针,实际上根据需要,为ATEST类定义(多个)构造函数,new ATEST(参数列表),选择传入不同的参数
第2种:ATEST *test = new ATEST;
这种是创建一个ATEST对象,系统隐式调用ATEST类的默认构造函数,不能传递任何参数,所创建的对象存储地址赋值给test指针
第3种:ATEST test;
声明ATEST对象,声明的同时由于没有传递任何参数,所以也是调用了默认构造函数创建了一个对象,并且test不是对象指针,而是对象
第4种:ATEST *test = new ATEST(param);
其实第1种是第4种的特殊形式,特殊在于无参
同样第3中也可以有参的
ATEST test(param)