01.cpp
#include#include usingnamespace std; class Test { public: Test(int n) : n_(n) { cout<<"Test(int n) : n_(n)"< n_<~Test(); // 显式调用析构函数,因为没有分配内存,所以直接调用析构函数 return0; }
二、解释
1、 Test* p1 = new Test(100);
delete p1;
结果如下:
void* operator new(size_t size)
Test(int n) : n_(n)
~Test()
void operator delete(void* p)
2、char * str = new char[100];
delete[] str;
结果如下:
global void* operator new[](size_t size)
global void operator delete[](void* p)
3、char chunk[10];
Test* p2 =new (chunk) Test(200);
cout<n_<
p2->~Test()
结果如下:
run
Test(int n) : n_(n)
200
~Test()