入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

普通指针转换智能指针转换时的错误

创建时间:2016-04-27 投稿人: 浏览次数:889

一。   

  一个普通指针转换为共享指针时只能转换一次。

    A * a=new A();

    A sharedPtr b=a;//正确

    A sharedPtr c=a;//错误a已经转换了一次,如果在转换一次,相当于同一个普通指针生成了2个共享指针,其中一个销毁时会删除普通指针对象,另一个
//          也要删除时就出错。

使用时可以按这样

 A sharedPtr b=A sharedPtr (new A);

b.......赋值

A sharedPtr c=A sharedPtr (new A);

c......赋值

二 当普通指针作为对象成员时,只能赋值给一个成员变量,否则会出现,一个对象删除时,将指针删除,其他

保存此指针的对象在删除时,无法删除一个已经删除的指针,而智能指针就可以多次赋值

A sharedPtr a=A sharedPtr (new A);

A sharedPtr b=A sharedPtr (new A);;

B c = new B();

a.set(c);//正确

c.set(b);//错误

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
  • 上一篇:没有了
  • 下一篇:没有了
未上传头像