1 #include<iostream> 2 using namespace std; 3 4 class Base 5 { 6 public: 7 Base() 8 { 9 cout << "base" << endl; 10 } //Base的构造函数 11 virtual ~Base() //Base的析构函数 12 { 13 cout << "~Base!" << endl; 14 } 15 }; 16 17 class Derived : public Base 18 { 19 public: 20 Derived() 21 { 22 cout << "drived" << endl; 23 } //Derived的构造函数 24 ~Derived() //Derived的析构函数 25 { 26 cout << "~Derived!" << endl; 27 } 28 }; 29 /*基类要用virtual的原因*/ 30 int main() 31 { 32 Derived *pTest1 = new Derived(); //Derived类的指针 33 delete pTest1; 34 35 cout << endl; 36 37 Base *pTest2 = new Derived(); //Base类的指针 38 delete pTest2; 39 40 return 0; 41 }