尽量不要自己手动管理
void Notice()
{
int * a = new int(10);
delete a;
//malloc与free;
}
一个裸指针不要用两个shared_ptr、unique_ptr管理
void Notice
{
auto pObj = new Object();
shared_ptr<Object> obj1(pObj);
shared_ptr <Object>obj1(pObj);
}
智能指针某些情况的限制
enable_shared_from_this 类和虚函数一样,某些情况不能使用
shared_from_this()不能在构造析构中调用
其他需要的注意
Object obj3(new Object());//new会构造2次影响效率 new 1次,智能指针1次
Object obj4 = obj3;//非原子的,至少是类,引用加1,在多线程下需要额外的操作
Object obj5 = make_shared<Object>();//只new一次