new带括号与不带括号的区别

来源:互联网 发布:梦幻西游mac版更新 编辑:程序博客网 时间:2024/05/07 18:19

自定义类类型:

    如果该类没有定义构造函数(由编译器合成默认构造函数)也没有虚函数,那么class c = new class;将不调用合成的默认构造函数,而class c = new class();则会调用默认构造函数。

    如果该类没有定义构造函数(由编译器合成默认构造函数)但有虚函数,那么class c = new class;和class c = new class();一样,都会调用默认构造函数。

    如果该类定义了默认构造函数,那么class c = new class;和class c = new class();一样,都会调用默认构造函数。

 

内置类型:

    int *a = new int;不会将申请到的int空间初始化,而int *a = new int();则会将申请到的int空间初始化为0


结论:加括号调用没有参数的构造函数,不加括号调用默认构造函数或唯一的构造函数,别使用不带括号的new。




0 0
原创粉丝点击