1 #include <iostream>
2 using namespace std;
3
4 class Base
5 {
6 public:
7 virtual void Print() = 0;
8 virtual ~Base(){}
9 };
10
11 class child_1 : public Base
12 {
13 public:
14 void Print()
15 {
16 cout << "child_1 Print function" << endl;
17 }
18 ~child_1()
19 {
20 cout << "child_1 destructor function" << endl;
21 }
22 };
23
24 class child_2: public Base
25 {
26 public:
27 void Print()
28 {
29 cout << "child_2 Print function" << endl;
30 }
31 ~child_2()
32 {
33 cout << "child_2 destructor function" << endl;
34 }
35 };
36
37 int main()
38 {
39 Base *p = new child_1; //父类指针指向子类对象
40 p->Print();
41 delete p; //记住释放,否则内存泄露
42 p = new child_2;
43 p->Print();
44 delete p;
45 p = NULL;
46 return 0;
47 }