std::auto_ptr 官网例子

1.std::auto_ptr::auto_ptr

//auto_ptr example
#include <iostream>
#include <memory>
int main () 
{
  std::auto_ptr<int> p1 (new int);
  *p1.get()=10;
  std::auto_ptr<int> p2 (p1);
  std::cout << "p2 points to " << *p2 << '\n';
  // (p1 is now null-pointer auto_ptr)
  return 0;
}
output:  p2 points to 10

2.std::auto_str::~auto_ptr

3.std::auto_ptr::get

//auto_ptr::get example
#include <iostream>
#include <memory>
int main ()
{
  std::auto_ptr<int> p (new int);
  *p.get() = 100;
  std::cout << "p points to " << *p.get() << '\n';
  return 0;
}

output:  p points to 100

4.std::auto_ptr::reset

//auto_ptr::reset example
#include <iostream>
#include <memory>
int main ()
{
  std::auto_ptr<int> p;
  p.reset (new int);
  *p=5;
  std::cout << *p << '\n';
  p.reset (new int);
  *p=10;
  std::cout << *p << '\n';

  return 0;
}

output: 5 10

5.std::auto_ptr::release

//auto_ptr::release example
#include <iostream>
#include <memory>

int main () {
  std::auto_ptr<int> auto_pointer (new int);
  int * manual_pointer;
  *auto_pointer=10;
  manual_pointer = auto_pointer.release();
  std::cout << "manual_pointer points to " << *manual_pointer << '\n';
  // (auto_pointer is now null-pointer auto_ptr)
  delete manual_pointer; 
  return 0;
}
output:  manual_pointer points to 10



FROM:  http://blog.csdn.net/zeng198902/article/details/16996249


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值