5类之继承性与派生类讲义.ppt
文本预览下载声明
* * * * * * * * * * * 例 派生类构造函数的执行顺序 #include iostream.h class A { public: A( ) { a=0; coutDefault constructor called.aendl; } A(int i) { a=i; coutConstructor called.aendl; } ~A( ) { coutDestructor called.aendl; } void Print( ) { couta,; } int Geta( ) { return a; } private: int a; }; void main( ) { B bb[2]; bb[0]=B(7,8,9); bb[1]=B(12,13,14); for(int i=0;i2;i++) bb[i].Print(); } class B:public A { public: B( ) { b=0; coutDefault constructor called.bendl; } B(int i,int j,int k):A(i),aa(j) { b=k; coutConstructor called.bendl; } ~B( ) { coutDestructor called.bendl; } void Print( ) { A::Print( ); coutb,aa.Geta()endl; } private: int b; A aa; }; class B:public A { public: B( ) { b1=b2=0; } B(int i) { b1=0;b2=i; } B(int i,int j,int k):A(i),b1(j),b2(k) { } ~B( ) { coutIn B.\n; } void Print( ) { A::Print(); coutb1,b2,; } private: int b1,b2; }; 例 多层派生类构造函数和析构函数。 #include iostream.h class A { public: A( ) { a=0; } A(int i) { a=i; } ~A() { coutIn A.\n; } void Print() { couta,; } private: int a; }; void main( ) { C c1; C c2(10); C c3(10,20,30,40); c1.Print(); c2.Print(); c3.Print(); } class C:public B { public: C( ) { c=0; } C(int i) { c=i; } C(int i,int j,int k,int l ):B(i,j,k),c( l ) { } ~C() { coutIn C.\n; } void Print() { B::Print(); coutcendl; } private:
显示全部