Use new operator to allocate memory for object : new delete « Development « C++






Use new operator to allocate memory for object

  
#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 *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);
}

int main(void)
{
  loc *p1, *p2;

  p1 = new loc(10,20);
  if (!p1)
  {
     cout << "Allocation error\n";
     exit(1);
  }

  p2 = new loc(-10,-20);
  if (!p2)
  {
      cout << "Allocation error\n";
      exit(1);
  }
  p1->show();
  p2->show();
  delete p1;
  delete p2;
  exit (0);
}
  
    
  








Related examples in the same category

1.delete memory allocate for objects
2.Demonstrating new throwing bad_alloc when memory is not allocated
3.bad_alloc standard exception