© 2014 Firstsoft Technologies (P) Limited. login
Hi 'Guest'
Home SiteMap Contact Us Disclaimer
enggedu
Quick Links
Easy Studies

Home Lab Exercise Object Oriented Programming Lab Exercise ProgramsCPP Program for delete and new Operator Overloading▼


CPP Program for delete and new Operator Overloading

Alogarithm steps:

    Step 1: create the class loc.

    Step 2: Declare the constructor loc .which initialize the member variables.

    Step 3: Declare the delete and new operator functions with the keyword operator.

    Step 4: Define the user specified operator’s behavior in operator function definitions.

    Step 5: Create the objects for the class loc.

    Step 6: Use the user defined operators for objects.

    Step 7: Monitoring the output values.

CPP Program for delete and new Operator Overloading

#include #include #include class loc { int longtitude,latitude; public : loc() {longtitude=latitude=0;} loc (int lg,int lt) { longtitude=lg; latitude=lt; } void show() { cout<< logitude << " "; cout<< latitude <<"\n"; } void *operator new(size_t size); void operator delete(void *p); void *operator new[](size_t size); void operator delete[](void *p); }; // new overloaded relative to loc void *loc :: operator new(size_t size) { void *p; cout<<"In overloaded new.\n"; p=malloc(size); if(!p) { bad_alloc ba; throw ba; } return p; } void loc :: operator delete (void *p) { cout<< "In overloaded delete. \n"; free(p); } //new overloaded for loc arrays. void *loc :: operator new[](size_t size) { void *p; cout<<"Using overload new[].\n"; p=malloc(size); if(!p) { bad_alloc ba; throw ba; } return p; } //delete overloaded for loc arrays. void loc :: operator delete[](void *p) { cout<<"Freeing array using overloaded delete[]\n"; free(p); } int main() { loc *p1,*p2; int i; try { p1=new loc(10,20); //allocate an object } catch (bad_alloc xa) { cout<<"Allocation error for p1.\n"; return 1; } try { p2=new loc[10]; } catch(bad_alloc xa) { cout<<"Allocation error for p2 .\n"; return 1; } p1->show(); for(i=0;i<10;i++) p2[i].show(); delete p1; delete [] p2; return 0; }

SAMPLE INPUT AND OUTPUT:

In overloaded new
Using overload new[].

10 20
 0 0
 0 0
 0 0
 0 0
 0 0
 0 0
 0 0
 0 0
 0 0
 0 0
In overloaded delete.
Freeing array using overloaded delete.

 
SLogix Student Projects

⇓Student Projects⇓
⇑Student Projects⇑
bottom