东东

new带括号与不带括号的区别
有时候看到有的开发的new的时候,有的带括号,有的不带括号,就比如class c = new class;和cla...
扫描右侧二维码阅读全文
07
2015/02

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

241031329084256.jpg

有时候看到有的开发的new的时候,有的带括号,有的不带括号,就比如class c = new class;和class c = new class();当时也很纠结这个问题,到底有什么区别,查了资料,并且在csdn上面也有一个问答,最后感觉还是这个解释靠谱.


自定义类类型:

       如果该类没有定义构造函数(由编译器合成默认构造函数)也没有虚函数,那么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,别使用不带括号的new。

Last modification:January 1st, 1970 at 08:00 am
如果觉得我的文章对你有用,请随意打赏: ☞已打赏列表

Leave a Comment