new的问题,谢谢回答

jhappen 2008-03-01 11:11:31
Link *newl=new Link(x);

Link newl=new Link(x);

Link *newl;
newl=new Link(x);
请问这三个创建有什么区别?
...全文
76 8 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
HelloDan 2008-03-01
  • 打赏
  • 举报
回复
Link newl=new Link(x);//不好意思,这种写法绝对是错的。 =两边类型不同的。
jhappen 2008-03-01
  • 打赏
  • 举报
回复
唉!我把java的混了进来,一时晕了
HelloDan 2008-03-01
  • 打赏
  • 举报
回复

Link *newl=new Link(x); //这里直接初始化为有确定指向的指针

Link newl=new Link(x);//这样的写法没有见过,不可取,即使是可以初始化成功,但new出来的也会造成内存泄漏。

Link *newl;//这里有初始化,但指向不定,是随机的。
newl=new Link(x); //这里再通过赋值确定指向的。
fengying616 2008-03-01
  • 打赏
  • 举报
回复
new Link(x); 调用类Link的构着函数Link(x),返回Link指针

Link *newl=new Link(x);在定义指针时并初始化,而最后一种是先定义,然后初始化。
一般良好的编程习惯是在定义指针的时候就初始化。
Link newl=new Link(x); 应该是行不通。

colxy 2008-03-01
  • 打赏
  • 举报
回复
Link *newl=new Link(x);

Link newl=new Link(x);

Link *newl;
newl=new Link(x);
1与3在实现是没有太大的区别,但是2是不正确的声明方式,因为关键字new本来就是为了解决对指针在申请
存储空间方面的问题,在java尤其可以体现这一点优势.
ryfdizuo 2008-03-01
  • 打赏
  • 举报
回复
第一种,第三种区别不大,
只是后一种推迟了指针的实现,
星羽 2008-03-01
  • 打赏
  • 举报
回复

Link *newl=new Link(x);

Link newl=new Link(x); // 错误的
Link *newl;
newl=new Link(x);


其它两个没什么区别
ryfdizuo 2008-03-01
  • 打赏
  • 举报
回复
Link newl=new Link(x);
可以这么写吗? new1不是指针吗?
相关推荐
发帖
C++ 语言

6.3w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
帖子事件
创建了帖子
2008-03-01 11:11
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下