//constdest.cpp //Illustrating when constructors //and destructors are called #include // cout, endl using namespace std; class cat{ public: cat(); //make a newborn cat(int n); //make a cat age n ~cat(); private: int age; }; cat::cat() { age=0; cout << "In cat default constructor. " << "age = " << age << endl; return; } cat::cat(int n) { age=n; cout << "In cat alternate constructor. " << "age = " << age << endl; return; } cat::~cat() { cout << "In cat DESTRUCTOR." << " age = " << age << endl; return; } int main() { cat x,y; cat z(3); cout << "some block.\n"; { cat q(4); cat h(10); cat z(7); } cout << "now a for loop\n"; int i; for (i=5;i>2;i--) {cat k(i);} cout << "out of for loop\n"; return 1; }