Watch for allocation errors using both old-style and new-style error handling.
#include <iostream>
#include <new>
using namespace std;
class MyClass {
static int count;
public:
MyClass() {
count++;
}
~MyClass() {
count--;
}
int getcount() {
return count;
}
};
int MyClass::count = 0;
int main()
{
MyClass object1, object2, object3;
cout << object1.getcount() << " objects in existence\n";
MyClass *p;
try {
p = new MyClass;
if(!p) {
cout << "Allocation error\n";
return 1;
}
} catch(bad_alloc ba) {
cout << "Allocation error\n";
return 1;
}
cout << object1.getcount();
cout << " objects in existence after allocation\n";
delete p;
cout << object1.getcount();
cout << " objects in existence after deletion\n";
return 0;
}
Related examples in the same category