1 #include <iostream>
2 using namespace std;
3 class B {
4 private:
5 int nBVal;
6 public:
7 void Print()
8 { cout << "nBVal="<< nBVal << endl; }
9 void Fun()
10 {cout << "B::Fun" << endl; }
11 B ( int n ) { nBVal = n;}
12 };
13 class D:public B{
14 private:
15 int nDVal;
16 public:
17 void Print() {
18 B::Print();
19 cout << "nDVal="<< nDVal << endl;
20 }
21 void Fun()
22 {cout << "D::Fun" << endl; }
23 D ( int n ):B(n * 3) { nDVal = n;} //一个派生类对象可以看作是一个基类对象,是对其扩充,所以记得 !!派生类对象要对基类对象成员进行初始化!!!(D ( int n ):B(n * 3))
24 };
25 int main() {
26 B * pb; D * pd;
27 D d(4); d.Fun();
28 pb = new B(2); pd = new D(8);
29 pb -> Fun(); pd->Fun();
30 pb->Print (); pd->Print ();
31 pb = & d; pb->Fun();
32 pb->Print();
33 return 0;
34 }