scopER在平板电脑上怎样下载在哪里下载

boost::scoped_ptrstd::auto_ptr非常类似是一个简单的智能指针,它能够保证在离开作用域后对象被自动释放下列代码演示了该指针的基本应用:

可以看到:当implementation类离其开impl作用域的时候,会被自动刪除这样就会避免由于忘记手动调用delete而造成内存泄漏了。

boost::scoped_ptr的实现和std::auto_ptr非常类似都是利用了一个栈上的对象去管理一个堆上的对象,从而使得堆上的对象随着栈上的对象销毁时自动删除不同的是,boost::scoped_ptr有着更严格的使用限制——不能拷贝这就意味着:boost::scoped_ptr指针是不能转换其所有權的。

  1. boost::scoped_ptr所管理的对象生命周期仅仅局限于一个区间(该指针所在的"{}"之间)无法传到区间之外,这就意味着boost::scoped_ptr对象是不能作为函数的返回值嘚(std::auto_ptr可以)

  2. 这点和std::auto_ptr类似。这个特点一方面使得该指针简单易用另一方面也造成了功能的薄弱——不能用于stl的容器中。

以引用的形式访問所管理的对象的成员

以指针的形式访问所管理的对象的成员

释放所管理的对象管理另外一个对象

下列测试代码演示了这些功能函数的基本使用方法。

boost::scoped_ptr和std::auto_ptr的功能和操作都非常类似如何在他们之间选取取决于是否需要转移所管理的对象的所有权(如是否需要作为函数的返囙值)。如果没有这个需要的话大可以使用boost::scoped_ptr,让编译器来进行更严格的检查来发现一些不正确的赋值操作。

我要回帖

更多关于 在平板电脑上怎样下载 的文章

 

随机推荐