Chromium中的scoped_refptr

2019-12-27  本文已影响0人  帆子_8c3a

Chromium中的scoped_refptr类似std::shared_ptr,但用起来稍微复杂一点。
scoped_refptr<T>,其中T是有约束条件的,它必须实现AddRef(),Release(),自己实现T的时候,可以用RefCountedThreadSafeRefCounted,使用具体参考ref_counted.h
例如:

class Test : public base::RefCounted<Test> {
public:
  Test(){
    std::cout << "Test::Test()" << std::endl;
  }
  ~Test(){
    std::cout << "Test::~Test()" << std::endl;
  }
};

这里使用了C++里的CRTP idiom,RefCountedRefCountedThreadSafe实现了static多态。

上一篇 下一篇

猜你喜欢

热点阅读