详询:用new实例化一个对象指针的格式?

1个回答

  • 第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)