免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 6202 | 回复: 20
打印 上一主题 下一主题

弱弱的问一句:new A() 和new A有没有区别 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-08 10:57 |只看该作者 |倒序浏览
new A() 和new A有没有区别
个人不知道区别 请教大家

论坛徽章:
0
2 [报告]
发表于 2009-10-08 11:02 |只看该作者

回复 #1 cc007cc 的帖子

一样,都是调用default constructor

论坛徽章:
0
3 [报告]
发表于 2009-10-08 16:14 |只看该作者

回复 #1 cc007cc 的帖子

对于内置类型和没有默认构造函数的类型,采用不同初始化方式是有很大差别。
int *pi=new int;
int *pi=new int();
前者指向一个未初始化的数。
后者指向一个初始化的0。

论坛徽章:
0
4 [报告]
发表于 2009-10-08 19:55 |只看该作者
应该是一个开辟的是对象,一个是函数空间吧

论坛徽章:
0
5 [报告]
发表于 2009-10-08 20:18 |只看该作者
原帖由 qthdn 于 2009-10-8 19:55 发表
应该是一个开辟的是对象,一个是函数空间吧

什么叫做函数空间啊?

论坛徽章:
0
6 [报告]
发表于 2009-10-09 15:51 |只看该作者

回复 #5 bert1984 的帖子

在内存中的新的代码段

论坛徽章:
0
7 [报告]
发表于 2009-10-09 17:18 |只看该作者
原帖由 cnzhaopeng 于 2009-10-8 16:14 发表
对于内置类型和没有默认构造函数的类型,采用不同初始化方式是有很大差别。
int *pi=new int;
int *pi=new int();
前者指向一个未初始化的数。
后者指向一个初始化的0。

well, i agree with you.
for new int(), the 'int' will be value-initialized

论坛徽章:
0
8 [报告]
发表于 2009-10-09 20:31 |只看该作者
真是活到老,学到老。

论坛徽章:
0
9 [报告]
发表于 2009-10-09 21:09 |只看该作者
原帖由 cnzhaopeng 于 2009-10-8 16:14 发表
对于内置类型和没有默认构造函数的类型,采用不同初始化方式是有很大差别。
int *pi=new int;
int *pi=new int();
前者指向一个未初始化的数。
后者指向一个初始化的0。


学习了,还真没有这么用过。

论坛徽章:
0
10 [报告]
发表于 2009-10-09 22:24 |只看该作者
有区别
当你有不同的构造函数时候有区别
譬如你有
class A
{
public:
    A(){}
    A(int i = 0){}
}
就有区别了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP