|
char global[255];
class base
{public:
base()
{
}
~base()
{
}
void* operator new(size_t sz)
{ cout << "void* operator new(size_t sz)" << endl;
return global;
}
void operator delete(void* p)
{ cout << "void operator delete(void* p)" << endl;
}
};
class sub : public base
{
};
int main(int argc, char* argv[])
{ sub* m;
m = ::new sub;
::delete m;
getch();
return 0;
}
위프로그램에서 ::delete m이 상위 클래스에서 중복된 delete가 호출됩니다.
왜 그렇지요?
그럼
|