delete memory allocate for objects : new delete « Development « C++






delete memory allocate for objects

  
#include <iostream>
#include <stdlib.h>
using namespace std;
class loc 
{
  int longitude, latitude;
  public:
    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);
};

void *loc::operator new(size_t size)
 {
  cout << "In the custom new function." << endl;
  return malloc(size);
 }

void loc::operator delete(void *p)
 {
  cout << "In the custom delete 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;
}
  
    
  








Related examples in the same category

1.Use new operator to allocate memory for object
2.Demonstrating new throwing bad_alloc when memory is not allocated
3.bad_alloc standard exception