智能指针
Sric提高了类似与C++的一组智能指针。包括SharedPtr、WeakPtr等。
SharedPtr
SharedPtr是自动引用计数的,有一定的开销。可从现有的own*获取。例如:
var p = new Int
var sp: SharedPtr$<Int> = toShared(p)
SharedPtr可通own*相互转换:
var p = sharedPtr.getOwn()
sharedPtr.set(p)
WeakPtr
使用own*和SharedPtr都可能产生循环引用,导致内存泄漏。可使用WeakPtr来打破循环引用。
var p = new Int
var wp: WeakPtr$<Int> = toWeak(p)
使用时通过lock方法转化为own*,然后进行使用。
var sp : own*? Int = wp.lock()
如果WeakPtr引用的对象已经被释放,则lock方法返回null。