4:25pm ccbsd2:abc/> cat -n abc.cpp 1 //abc.cpp -- by tsaiwn@csie.nctu.edu.tw 2 //g++ abc.cpp; ./a.out 3 // test Inheritance with constructor 4 #include 5 using namespace std; 6 class A { 7 public: 8 A( ) { cout << "a1 "; } 9 A(int x) { cout << "a2 "<< x << " "; } 10 ~A( ) { cout << " a-dying "; } 11 }; 12 class B: public A { 13 public: 14 ~B( ) { cout << " b-dying "; } 15 B( ) { cout << "b1 "; } 16 B(int nnn) : A(nnn+5) { cout << "b2 "; } 17 B(double nnn) { cout << "b3 "; } 18 }; 19 void test( ) { 20 B x(12345); cout << "\n in test ..."; 21 } 22 A x; A y(38); 23 int main( ) { 24 cout << "\n===\n"; 25 B x; 26 B y(3388); cout << "\n"; 27 B zz(123.456); cout << "\n===\n"; 28 test( ); 29 cout << "=== ===\n"; 30 } 31 4:25pm ccbsd2:abc/> g++ abc.cpp 4:25pm ccbsd2:abc/> ./a.out a1 a2 38 === a1 b1 a2 3393 b2 a1 b3 === a2 12350 b2 in test ... b-dying a-dying === === b-dying a-dying b-dying a-dying b-dying a-dying a-dying a-dying 4:25pm c 4:25pm ccbsd2:abc/> Run on PC under DEV-CPP D:\Documents and Settings\user.CCCS> D:\Documents and Settings\user.CCCS>g++ abc.cpp D:\Documents and Settings\user.CCCS>a a1 a2 38 === a1 b1 a2 3393 b2 a1 b3 === a2 12350 b2 in test ... b-dying a-dying === === b-dying a-dying b-dying a-dying b-dying a-dying a-dying a-dying D:\Documents and Settings\user.CCCS>