CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

有关auto_ptr的一些问题,,请大家看看

楼主R9R9R9(猪头饼)2005-06-01 22:24:28 在 C/C++ / C++ 语言 提问

问题一:  
   
  书中写道auto_ptr支持所有权概念  
   
  那么如:  
   
   
          auto_ptr<int>   p(new   int(1024));  
   
          auto_ptr<int>   p1(p);//这里对象的所有权应该是转给p1了吧,,那p指针就应该不再指向对象了吧  
   
          cout<<*p1<<endl;  
   
          cout<<*p<<endl;//那么为何这里还可以显示出1024呢?  
   
  问题二:  
   
        auto_ptr<int>   p(new   int(1024));  
        p.reset(new   int(2048));//为何显示错误  
        //error   C2039:   'reset'   :   is   not   a   member   of   auto_ptr<int>  
   
         
  问题点数:20、回复次数:7Top

1 楼R9R9R9(猪头饼)回复于 2005-06-01 22:35:47 得分 0

另外:  
  假设auto_ptr<string>   ps(new   string("Daniel"));  
   
  则下列两个语句的区别是什么?应该是一样的吧?为什么auto_ptr对像既可以用.又可以用->操作符哟?  
  ps.get()->assign("Danny");  
   
  ps->assign("Danny");  
  Top

2 楼qhfu(改个名字)回复于 2005-06-01 22:41:31 得分 20

一题,只是释放权从第一个变量转到第二个变量而且,   第一个变量还是指向声明的堆空间的,只是它不再负责释放元素了。Top

3 楼qhfu(改个名字)回复于 2005-06-01 22:44:49 得分 0

ps.get()->assign("Danny");  
   
  ps->assign("Danny");  
  这两个中     第一个效率比第二个高Top

4 楼foochow(无聊,灌水......)回复于 2005-06-01 23:28:02 得分 0

auto_ptr<int>   p1(p);这个可能导致p失效,也就是说,在auto_ptr对象放弃所有权之后,将可能不再可用,它是否可用取决于实现  
   
   
  Top

5 楼mostideal(三甲)回复于 2005-06-02 00:05:23 得分 0

学习。。Top

6 楼zdy_8212(zdy_8212)回复于 2005-06-02 01:41:34 得分 0

p在完成它的操作后这块地址就是它的。在第二句出现后它转接了P。  
  非成员函数(写错了?)。函数的返回值类型的不同Top

7 楼R9R9R9(猪头饼)回复于 2005-06-02 12:50:30 得分 0

期待更详细的答案Top

相关问题

  • 请教!auto_ptr的使用
  • to 令狐虫:有关你的auto_ptr的问题
  • 一个有关auto_ptr智能指针的问题
  • 请问大家用std::auto_ptr多吗?
  • auto_ptr问题.
  • auto_ptr的问题
  • 请教_com_ptr_t
  • 关于auto_ptr的问题,请指教,先谢了
  • 请教一个关于auto_ptr的程序
  • vector中能放auto_ptr吗?

关键词

  • ps
  • auto
  • danny
  • 变量
  • ptr
  • 所有权
  • assign
  • 对象
  • 应该

得分解答快速导航

  • 帖主:R9R9R9
  • qhfu

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo