Mega Code Archive

 
Categories / C++ / Overload
 

Define new deletenew[]delete[] operators

#include <iostream> #include <stdlib.h> using namespace std; class loc  {   int longitude, latitude;   public:     loc(void) {}                   ~loc(void);     loc (int lg, int lt)      {       longitude = lg;       latitude = lt;      }     void show(void)       {       cout << longitude << " ";       cout << latitude << endl;       }     void *operator new(size_t size);     void operator delete(void *p);     void *operator new[](size_t size);     void operator delete[](void *p);  }; loc::~loc(void) {    cout << "In the destructor function" << endl; } void *loc::operator new(size_t size) {   cout << "In the custom new operator function." << endl;   return malloc(size); } void loc::operator delete(void *p) {   cout << "In the custom delete operator function." << endl;   free(p); } void *loc::operator new[](size_t size) {   cout << "In the custom new ARRAY allocator function." << endl;   return malloc(size); } void loc::operator delete[](void *p) {   cout << "Freeing the ARRAY in the custom delete function." << endl;   free(p); } int main(void) {   loc *p1, *p2;   int i;   p1 = new loc(10,20);   if (!p1)   {       cout << "Allocation error\n";       exit(1);   }   p2 = new loc[10];   if (!p2)   {      cout << "Allocation error\n";       exit(1);   }   p1->show();   for(i=0; i<10; i++)      p2[i].show();   delete p1;   delete [] p2; }