#include #include class C { public: char* salutation; C() { salutation=0; } C(char* c) { salutation=new char[strlen(c)+1]; strcpy(salutation,c); }//end constructor ~C() { if (salutation) delete[] salutation; cout << "~C() invoked\n"; }//end destructor };//end class C class CC : public C { public: char* name; CC() { name=0; } // C() will be invoked implicitly CC(char* s,char* n) : C(s) { // C(s) invocation requested name=new char[strlen(n)+1]; strcpy(name,n); }//end constructor ~CC() { // ~C() will be invoked implicitly if (name) delete[] name; cout << "~CC() invoked\n"; }//end destructor };//end class CC // function main ------------------------------------------------ int main() { CC* x = new CC("hey","Joe"); cout << x->salutation << ',' << x->name << '\n'; delete x; return 0; }//end main