1、使用默认删除器
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
shared_ptr<int> point1(new int(10)); //使用默认删除器
return 0;
}
2、自定义删除器
#include <iostream>
using namespace std;
void mydelete(int* p)
{
cout << "log..." << endl; //释放内存的时候打印日志;
delete p;
}
int main(int argc, char* argv[])
{
shared_ptr<int> point2(new int(10), mydelete); //使用自定义mydelelte删除器
return 0;
}
3、lambda删除器
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
//lambda删除器
shared_ptr<int> point3(new int(10), [](int* p) {
delete p;
});
return 0;
}