auto_ptr(T *p=0) *p=0什么意思啊?

zhangtonghui816 2012-12-10 07:36:46
*p=0什么意思,初始化p为NULL?
我在网上没查到,求指教。
...全文
212 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangtonghui816 2012-12-10
  • 打赏
  • 举报
回复
谢谢大家,好高效率啊~
taz911 2012-12-10
  • 打赏
  • 举报
回复
有区别,我在MSDN中查了auto_ptr class,auto_ptr()是默认构造函数,auto_ptr(T *p=0)应该是一个模板的构造函数,且此构造函数是有参数的,此处*p=0就是其默认参数,如果你直接写auto_ptr()来构造一个对象的话,相当于调用了auto_ptr(T *p=0),这里将一个指针参数赋值为0有一个好处,就是防止delete p 时产生非法访问,delete一个0指针是合法的。关于模板和构造函数详细内容可以看《Thinking in c++ Volume Two》,里面 讲得很好。
mujiok2003 2012-12-10
  • 打赏
  • 举报
回复
默认参数--参数的缺省值

std::auto_ptr<int> one; //std::auto_ptr<int>::auto_ptr<int>(0);
int* p;
std::auto_ptr<int> two(p); //std::auto_ptr<int>::auto_ptr<int>(p);
zhangtonghui816 2012-12-10
  • 打赏
  • 举报
回复
引用 1 楼 skydesign 的回复:
谢谢你的回复,不过我想要知道的是构造函数auto_ptr(T *p=0)中 T *p=0这样定义什么意思 与auto_ptr()有什么区别吗?
毛志谦 2012-12-10
  • 打赏
  • 举报
回复

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧