2011-12-17 2 views
5

객체 배열이 생성 될 때 호출되는 클래스 특정 new/delete를 오버로드 할 수 있습니까?클래스 특정 신규/삭제

class Foo; 

Foo* f = new Foo[10]; // calls overloaded new 
delete[] f; // calls overloaded delete 

감사합니다.

+0

참조 http://stackoverflow.com/questions/7149461/why-should-one-replace-default-new-and-delete-operators 및 http://stackoverflow.com/questions/7149461/why -should-one-replace-default-new-and-delete-operators. –

답변

8

예, 가능합니다. newdeletehere 오버로드에 대한 자습서가 있으며 배열, here에 대한 newdelete의 오버로드에 대한 좋은 예가 있습니다.

class Myclass 
{ 
    public: 
     void* operator new(size_t); 
     void operator delete(void*); 

     void* operator new[](size_t); 
     void operator delete[](void*); 
}; 
관련 문제