首页 > 试题广场 >

请你来说一下智能指针shared_ptr的实现

[问答题]

请你来说一下智能指针shared_ptr的实现

发表于 2019-05-13 11:36:39 回复(0)

真正的shared_ptr构造还会有个Deleter的参数,用于确保shared_ptr<void>所指对象能够正确析构
此外管理块(这里只有int *use_count)里面的引用计数应该是原子的,否则多线程直接爆炸
最后应该提供一个make_shared函数,用于一次性分配足够供给对象和管理块两个部分的内存,而且是连续的,缓存友好。直接使用构造函数的话两块内存很少可能是连续的

编辑于 2019-08-28 20:03:33 回复(0)