您的位置:首页 > 其它

[转载]new带括号与不带括号的区别

2014-10-09 22:04 267 查看

今天在学习JAVA编程时候,在new一个class时,该class名后面带(),所以有此疑问:

public class runnian{.............}

runnian year = new runnian();


自定义类类型:

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

PS:这是VS2008下的结果。


阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: