RefBase Class

Description

RefBase是大多数EasyAR类的基类。

RefBase与C++的std::shared_ptr行为类似,它是一个对真实对象的非常薄的封装。对于一个继承自RefBase的类C,你可以像std::shared_ptr<C_internal>一样使用。C 所引用的内存是引用计数的,并且以类似于std::shared_ptr的方式管理。同时,C 的线程安全性与std::shared_ptr相同。EasyAR里面继承于RefBase的类通常是延迟初始化的,也就是说在特定方法被调用之前,对象是无效的(operator bool()返回false)。当然如果你倾向于使用裸指针,完全可以在代码中使用C*

Public Functions

RefBase()
RefBase(const RefBase& b)
virtual~RefBase()
RefBase&operator=(const RefBase& b)
operator bool() const
booloperator ==(const RefBase& other) const
booloperator !=(const RefBase& other) const
template<class T> Tcast_dynamic() const
template<class T> Tcast_static() const
voidclear()

RefBase()

创建RefBase对象。

RefBase(const RefBase& b)

创建RefBase对象并指向与b相同的内部对象。

virtual ~RefBase()

销毁对象。只有在没有其它引用的时候才会释放包括线程在内的所有资源。

RefBase& operator=(const RefBase& b)

赋值操作符。当前的RefBase将会指向与b相同的对象。

operator bool() const

在内部对象被销毁或没有引用内部对象的时候返回false,否则返回true。

bool operator ==(const RefBase& other) const

相等操作符,当对象和other指向相同内部对象的时候返回true,否则返回false。

bool operator !=(const RefBase& other) const

不等操作符,当对象和other指向不同内部对象的时候返回true,否则返回false。

template<class T> T cast_dynamic() const

类似于std::dynamic_pointer_cast。动态转换对象为T 类型。

template<class T> T cast_static() const

类似于std::static_pointer_cast。静态转换对象为T 类型。

void clear()

清除对象。包括线程在内的所有资源都将被释放。