Catch 'new' memory allocation exception : new « Development « C++ Tutorial






#include <iostream> 
#include <new> 
using namespace std; 
 
class Rectangle { 
  int width; 
  int height; 
public: 
  Rectangle(int w, int h) { 
    width = w; 
    height = h; 
    cout << "Constructing " << width << " by " << height << " rectangle.\n"; 
  } 
 
  ~Rectangle() {  
     cout << "Destructing " << width << " by " << height << " rectangle.\n"; 
  }  
 
  int area() { 
    return width * height; 
  } 
}; 
 
int main() 
{ 
  Rectangle *p; 
 
  try { 
    p = new Rectangle(10, 8); 
  } catch (bad_alloc xa) { 
    cout << "Allocation Failure\n"; 
    return 1; 
  } 
 
  cout << "Area is " << p->area(); 
 
  delete p; 
 
  return 0; 
}
Constructing 10 by 8 rectangle.
Area is 80Destructing 10 by 8 rectangle.








5.12.new
5.12.1.Use new and delete
5.12.2.Global new
5.12.3.Initialize memory
5.12.4.Allocate an array
5.12.5.Allocate an object
5.12.6.Allocate memory for an object
5.12.7.Catch 'new' memory allocation exception
5.12.8.using new to get memory for strings
5.12.9.Allocate an array of objects by overloading new and delete operators
5.12.10.dynamically allocated objects may have constructors and destructors