new的内部实现
- C/C++ code
_C_LIB_DECL [new的内部实现,调式程序看到的]int __cdecl _callnewh(size_t size) _THROW1(_STD bad_alloc);_END_C_LIB_DECLvoid *__CRTDECL operator new(size_t size) _THROW1(_STD bad_alloc) { // try to allocate size bytes void *p; while ((p = malloc(size)) == 0) if (_callnewh(size) == 0) { // report no memory static const std::bad_alloc nomem; _RAISE(nomem); } return (p); }
据说new能够调用类的构造函数 ,不知道是怎么实现的?
[解决办法]
new 的构造函数,定义一个对象时的构造函数,一个自动变量的析构函数,都是隐式强制自动调用的.