共享指针和唯一指针
唯一指针不能复制,它的参数不能使用new关键字创建。
std::unique_ptr<Entity>entity=std::make_unique<Entity>();
std::unique_ptr<Entity>e0=entity;
共享指针有一个引用计数,当计数为0就宣布释放内存。
{
std::shared_ptr<Entity>e0;
{
std::shared_ptr<Entity>entity=std::make_shared<Entity>();
e0=entity;
}//不释放内存
}//释放内存
弱指针可以使共享指针的计数无效。
std::shared_ptr<Entity1>shared_entity = std::make_shared<Entity1>();
std::weak_ptr<Entity1>weakEntity = shared_entity;//使shared_entity不增加计数,使其共享无效