022:看上去像多态
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 }