[ogre] SharePtr
2008-08-16 15:38:08| 分类:
3d_ogre
| 标签:
|举报
|字号大中小 订阅
相关文件:
OgreSharedPtr.h
一个 shared ptr 的实现,利用 ref count 记录指针的引用情况。实现比较常见,没有特别之处。
只是 operator = 的实现上,有个小小技巧。
SharedPtr& operator=(const SharedPtr& r) {
if (pRep == r.pRep)
return *this;
// Swap current data into a local copy
// this ensures we deal with rhs and this being dependent
SharedPtr<T> tmp(r);
swap(tmp);
return *this;
}
临时变量 tmp 创建,导致 r 的 ref count + 1,然后 swap() 将 this 与 tmp 中的所有内容交换,之后 tmp 会被析构,导致原来 this 所表示的指针的 ref count - 1。
评论这张
转发至微博
转发至微博
评论