第11章 继承派生类.pptVIP

  • 2
  • 0
  • 约1.03万字
  • 约 57页
  • 2019-01-30 发布于江苏
  • 举报
第11章 继承派生类

* class Base1 { int x; public: Base1(int a){ x=a;cout调用基类1的构造函数!\n; } ~Base1( ){ cout调用基类1的析构函数!\n; } }; class Base2 { int y; public: Base2(int a){ y=a;cout调用基类2的构造函数!\n; } ~Base2( ){ cout调用基类2的析构函数!\n; } }; class Derived:public Base2, public Base1{ int z; public: Derived(int a,int b):Base1(a),Base2(20) {z=b; cout调用派生类的构造函数!\n;} ~Derived( ){cout调用派生类的析构函数!\n;} }; void main(void) { Derived c(100,200); } 调用基类2的构造函数 调用基类1的构造函数 调用派生类的构造函数 调用派生类的析构函数 调用基类1的析构函数 调用基类2的析构函数 先说明基类2 * class Derived:public Base2, public Base1{ int z; Base1 b1,b2; public: Derived(int a,int b):Base1(a),Base2(20), b1(200),b2(a+b) {z=b; cout调用派生类的构造函数!\n;} ~Derived( ){cout调用派生类的析构函数!\n;} }; void main(void) { Derived c(100,200); } 基类子对象 基类成员构造 基类子对象构造 基类成员构造用基类名, 基类子对象构造用对象名 * class Base1 { int x; public: Base1(int a){ x=a;cout调用基类1的构造函数!\n; } ~Base1( ){ cout调用基类1的析构函数!\n; } }; class Base2 { int y; public: Base2(int a){ y=a;cout调用基类2的构造函数!\n; } ~Base2( ){ cout调用基类2的析构函数!\n; } }; class Derived:public Base2, public Base1{ int z; Base1 b1,b2; public: Derived(int a,int b):Base1(a),Base2(20), b1(200),b2(a+b) {z=b; cout调用派生类的构造函数!\n;} ~Derived( ){cout调用派生类的析构函数!\n;} }; void main(void) { Derived c(100,200); } * 调用基类2的构造函数 调用基类1的构造函数 调用派生类的构造函数 调用派生类的析构函数 调用基类1的析构函数 调用基类2的析构函数 调用基类1的构造函数 调用基类1的构造函数 调用基类1的析构函数 调用基类1的析构函数 说明基类1的对象b1,b2 * class Base1 { int x; public: Base1(int a); ~Base1( ); }; class Base2 { int y; public: Base2(int a); ~Base2( ); }; class Derived:public Base2, public Base1{ int z; Base1 b1,b2; public: Derived(int a,int b); ~Derived( ); }; x Base1() ~Base1() Base1 y Base2() ~Base2() Base2 Derived x Base1() ~Base1() y Base2() ~Base2() x Base1() ~Base1() b1 x Base1() ~Base1() b2 z Derived() ~Derived * 冲突 A B C x A() x B() x C() D A() x B() x C() x D() d D v; v.x=5; public 派生类对象 产生了冲突 A::v.x=5; 用类作用符限定 * class A{ public: int x; void Show(){cout x=x\n;} A(int a=0){x=a;} }; class B{ p

文档评论(0)

1亿VIP精品文档

相关文档