Effective C++ ????????
???????????? ???????[ 2012/12/12 10:57:50 ] ????????
????ж??new-handler?????????????set_new_handler????а??new-handler??operator new??????治?????????????????std::bad_alloc?????????
?????? ???std::bad_alloc???std::bad_alloc??е??????????????????????????operator new??????????????????????????????????????????????????????Υ??operator new???淶???淶?е???????????abort??????new-handler????????????????????????std::bad_alloc????????????????????淶???μ?????m14????
??????з?????????????????abort??exit??abort/exit????????c????????????б??c++???μ?????49????
????????????????????new-handler???????????????
??????????????????????????????????????????????????
class x {
public:
static void
outofmemory();
...
};
class y {
public:
static void outofmemory();
...
};
x* p1 = new x; // ?????????????x::outofmemory
y* p2 = new y; // ??????????????y::outofmemory
????c++????????????????new-handler????????????????????????????????????????????????????汾??set_new_handler??operator new?????set_new_handler??????????new-handler????????set_new_handler??????new-handler??????????operator new??????????????????????new-handler??????new-handler??
???????賬????x??????????????????operator new??????x???????????????????ζ???????ó?????????????????????????????new_handler?????????????????x????????????????
class x {
public:
static new_handler set_new_handler(new_handler p);
static void * operator new(size_t size);
private:
static new_handler currenthandler;
};
???????????????????????塣???????t???????????????0?????????x::currenthandler????????????
new_handler x::currenthandler; //??????currenthandler?0(??null)
??????x?е?set_new_handler???????洫???????κ???????????????????????????κ?????????????汾??set_new_handler???????
new_handler x::set_new_handler(new_handler p)
{
new_handler oldhandler = currenthandler;
currenthandler = p;
return oldhandler;
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11