#include "stdafx.h"
#include <iostream>
class CMyNewClass
{
public:
CMyNewClass():m_int1(10),m_int2(5){std::cout<<"ddd"<< std::endl;};
~CMyNewClass(){std::cout<<"eeeeee" <<std::endl;};
public:
int m_int1;
int m_int2;
};
#define MY_NEW(B,A) \
{\
B = (A*)operator new (sizeof(A));\
::new (B) A; \
}
#define MY_DELETE(B,A) \
{\
B->~A();\
::delete((void *)B);\
};
#define MY_NEW_ARRAY(B,A,C) \
{\
B = (A*)operator new [C](sizeof(A));\
::new (B) A[C]; \
};
#define MY_DELETE_ARRAY(B,A,C) \
{\
for ( int i = 0; i < C; ++i )\
{\
B++->~A();\
}\
::delete []((void *)B);\
};
void *operator new[] (size_t size)
{
void *p = malloc(size);
return p;
}
void operator delete[](void *p)
{
free(p);
};
int _tmain(int argc, _TCHAR* argv[])
{
CMyNewClass *p = NULL;
p = new CMyNewClass[10];
delete[] p;
return 0;
}