#include <new>
class CDirObj
{
public:
void* operator new(size_t sz)
{
printf("operator new\n");
return ::operator new(sz);
}
void operator delete(void* p)
{
printf("operator delete\n");
::operator delete(p);
}
CDirObj::CDirObj()
{
printf("构造 %d\n", this);
m_pStr = new char[1024];
}
CDirObj::CDirObj(const char* pStr)
{
printf("其他构造 %d\n", this);
CDirObj();
}
CDirObj::~CDirObj()
{
printf("析构 %d\n", this);
delete m_pStr;
}
const char* m_pStr;
};
#include <iostream>
class CTest
{
public:
CTest()
{
m_a = 1;
printf("构造CTest %d\n", this);
}
CTest(int b)
{
m_b = b;
CTest();
printf("其他构造CTest %d\n", this);
}
~CTest()
{
printf("析构CTest %d\n", this);
}
void show()
{
std::cout << m_a << std::endl;
std::cout << m_b << std::endl;
}
int m_a;
int m_b;
};
int _tmain(int argc, _TCHAR* argv[])
{
CTest myTest(2);
myTest.show();
CDirObj* pObje = new CDirObj("HELLO");
delete pObje;
return 0;
}
答案是什么
最新推荐文章于 2018-10-07 21:16:16 发布