继承与派生 (2)优秀课件.ppt

上传人:石*** 文档编号:64372975 上传时间:2022-11-29 格式:PPT 页数:60 大小:4.04MB
返回 下载 相关 举报
继承与派生 (2)优秀课件.ppt_第1页
第1页 / 共60页
继承与派生 (2)优秀课件.ppt_第2页
第2页 / 共60页
点击查看更多>>
资源描述

《继承与派生 (2)优秀课件.ppt》由会员分享,可在线阅读,更多相关《继承与派生 (2)优秀课件.ppt(60页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、继承与派生第1页,本讲稿共60页 面向对象程序的面向对象程序的4 4个主要特点:个主要特点:抽象抽象-类是对象的抽象,对象是类的具体化。类是对象的抽象,对象是类的具体化。封装封装-数据与操作封装在一个对象中;数据与操作封装在一个对象中;对象中某些数据对外隐蔽。对象中某些数据对外隐蔽。继承继承-“软件重用软件重用”。多态性多态性-由继承产生不同的类,其对象对同一由继承产生不同的类,其对象对同一 个消息作出的不同反应。个消息作出的不同反应。复习:复习:引入继承机制的作用引入继承机制的作用第2页,本讲稿共60页继承:继承:保持已有类的特性而构造新类的过程,它是类之保持已有类的特性而构造新类的过程,它

2、是类之 间定义的一种重要关系(共性)。间定义的一种重要关系(共性)。派生:派生:是在已有类的基础上新增自己的特性而产生新类是在已有类的基础上新增自己的特性而产生新类 的过程(个性)。的过程(个性)。基类(或父类)基类(或父类):被继承的已存在的类。被继承的已存在的类。派生类(或子类):派生类(或子类):派生出的新类。派生出的新类。5.1 5.1 继承与派生的概念继承与派生的概念 第3页,本讲稿共60页 继承与派生的例子:继承与派生的例子:不具有对称性不具有对称性 不是所有植物都属于蕨类不是所有植物都属于蕨类传递性传递性 高等植物、蕨类植物、芒萁都是植物,具有植物的共同特征高等植物、蕨类植物、芒

3、萁都是植物,具有植物的共同特征 植物植物 低等植物低等植物高等植物高等植物藻类藻类菌类菌类地衣类地衣类苔藓类苔藓类蕨类蕨类裸子类裸子类被子类被子类地地钱钱小小金金发发草草毛毛蕨蕨芒芒萁萁杉杉木木柏柏木木荔荔枝枝橘橘子子第4页,本讲稿共60页AB1B2C1C2C3B1,B2 的基类的基类A 的派生类的派生类C1,C2,C3 的基类的基类A 的派生类(的派生类(单继承单继承)C3的基类的基类B1,B2 的派生类(的派生类(多继承多继承)B1 的派生类的派生类5.1 5.1 继承与派生的概念继承与派生的概念 单继承:单继承:一个派生类只从一个基类派生。一个派生类只从一个基类派生。多继承:多继承:一个

4、派生类可以从两个或多个基类派生。一个派生类可以从两个或多个基类派生。基类与派生类的关系:基类与派生类的关系:派生类是基类的具体化,而基类则是派生类的抽象。派生类是基类的具体化,而基类则是派生类的抽象。第5页,本讲稿共60页5.2 5.2 派生类的声明方式派生类的声明方式 声明基类的格式:声明基类的格式:class class 派生类名派生类名 声明派生类的格式:声明派生类的格式:class class 派生类名派生类名 :继承方式继承方式 基类名基类名 新增加新增加的的数据成员和成员函数声明数据成员和成员函数声明 ;protected publicprivate第6页,本讲稿共60页 基类继承

5、过来的成员(基类继承过来的成员(共性共性)派生类中的成员派生类中的成员 自己增加的成员(自己增加的成员(个性个性)5.3 5.3 派生类的构成派生类的构成 新增加新增加的成员的成员派生类将基类除构造派生类将基类除构造函数和析构函数外的函数和析构函数外的所有成员接收过来。所有成员接收过来。第7页,本讲稿共60页派生类中包含了基类成员和派生类成员,就产生了这两部分成派生类中包含了基类成员和派生类成员,就产生了这两部分成员的关系和访问属性的问题。员的关系和访问属性的问题。5.4.1 5.4.1 派生类成员的访问属性派生类成员的访问属性派生类的继承方式派生类的继承方式 基类成员的访问属性基类成员的访问

6、属性决定派生类访决定派生类访问属性因素问属性因素第8页,本讲稿共60页成员的访问属性(复习)成员的访问属性(复习)私有成员私有成员(private)(private):可以被类自身的成员和友元访问,但不:可以被类自身的成员和友元访问,但不能被其他任何类和任何普通函数访问。能被其他任何类和任何普通函数访问。公有成员公有成员(public)(public):可以被任何普通函数和任何类的成员函数访问。:可以被任何普通函数和任何类的成员函数访问。保护成员保护成员(protected)(protected):可以被类自身的成员和友元访问外。:可以被类自身的成员和友元访问外。三种继承方式:三种继承方式:-

7、公有继承公有继承 -私有继承私有继承 -保护继承保护继承第9页,本讲稿共60页5.2.1 访问控制1.1.公有继承公有继承public 成员成员 public 成员成员protected 成员成员 protected 成员成员private 成员成员public 成员成员protected 成员成员private 成员成员基类基类派生类派生类不可直接访问不可直接访问基类的基类的publicpublic和和protectedprotected成员的访问属性在派生类中保成员的访问属性在派生类中保持不变,但基类的持不变,但基类的privateprivate成员不可直接访问。成员不可直接访问。第10页

8、,本讲稿共60页公用继承示例公用继承示例:错误,错误,numnum在基类中为私有成员,在基类中为私有成员,在派生类中不可直接访问。在派生类中不可直接访问。第11页,本讲稿共60页公用继承示例公用继承示例:display();第12页,本讲稿共60页#includeclass A public:void get_XY()cout x y;void put_XY()cout x=x ,y=y n;protected:int x,y;class B:public A public:int get_S()return s;void make_S()s=x*y;/使用基类数据成员使用基类数据成员x,y

9、protected:int s;void main()A objA;B objB;cout It is object_A:n;objA.get_XY();objA.put_XY();cout It is object_B:n;objB.get_XY();objB.make_S();cout S=objB.get_S()endl;公有继承的测试公有继承的测试 1 5.2.1 访问控制第13页,本讲稿共60页#includeclass A public:void get_XY()cout x y;void put_XY()cout x=x ,y=y n;protected:int x,y;clas

10、s B:public A public:int get_S()return s;void make_S()s=x*y;/使用基类数据成员使用基类数据成员x,y protected:int s;void main()A objA;B objB;cout It is object_A:n;objA.get_XY();objA.put_XY();cout It is object_B:n;objB.get_XY();objB.make_S();cout S=objB.get_S()endl;公有继承的测试公有继承的测试 1 5.2.1 访问控制class Aclass B:public A第14页,

11、本讲稿共60页#includeclass A public:void get_XY()cout x y;void put_XY()cout x=x ,y=y n;protected:int x,y;protected:int x,y;class B:public A public:int get_S()return s;void make_S()s=x*y;/使用基类数据成员使用基类数据成员x,y protected:int s;protected:int s;void main()A objA;B objB;cout It is object_A:n;objA.get_XY();objA.p

12、ut_XY();cout It is object_B:n;objB.get_XY();objB.make_S();cout S=objB.get_S()endl;公有继承的测试公有继承的测试 1 5.2.1 访问控制class Aclass B:public A保护数据成员保护数据成员在类层次中可见在类层次中可见第15页,本讲稿共60页#includeclass A public:void get_XY()cout x y;void put_XY()cout x=x ,y=y n;protected:int x,y;class B:public A public:int get_S()ret

13、urn s;void make_S()s=x*y;/使用基类数据成员使用基类数据成员x,y protected:int s;void main()A objA;B objB;cout It is object_A:n;objA.get_XY();objA.put_XY();cout It is object_B:n;objB.get_XY();objB.make_S();cout S=objB.get_S()endl;公有继承的测试公有继承的测试 1 5.2.1 访问控制objA.yobjA.xobjAx y 第16页,本讲稿共60页#includeclass A public:void ge

14、t_XY()cout x y;void put_XY()cout x=x ,y=y n;protected:int x,y;class B:public A public:int get_S()return s;void make_S()s=x*y;/使用基类数据成员使用基类数据成员x,y protected:int s;void main()A objA;B objB;cout It is object_A:n;objA.get_XY();objA.put_XY();cout It is object_B:n;objB.get_XY();objB.make_S();cout S=objB.g

15、et_S()endl;公有继承的测试公有继承的测试 1 5.2.1 访问控制objB.sobjB.yobjB.xobjBsobjA.yobjA.xobjAx y 第17页,本讲稿共60页#includeclass A public:void get_XY()cout x y;void put_XY()cout x=x ,y=y n;protected:int x,y;class B:public A public:int get_S()return s;void make_S()s=x*y;/使用基类数据成员使用基类数据成员x,y protected:int s;void main()A ob

16、jA;B objB;cout It is object_A:n;objA.get_XY();objA.put_XY();cout It is object_B:n;objB.get_XY();objB.make_S();cout S=objB.get_S()endl;公有继承的测试公有继承的测试 1 5.2.1 访问控制对对 objA 的的数据成员操作数据成员操作objB.sobjB.yobjB.xobjBsobjA.yobjA.xobjAx y 第18页,本讲稿共60页#includeclass A public:void get_XY()cout x y;void put_XY()cout

17、 x=x ,y=y n;protected:int x,y;class B:public A public:int get_S()return s;void make_S()s=x*y;/使用基类数据成员使用基类数据成员x,y protected:int s;void main()A objA;B objB;cout It is object_A:n;objA.get_XY();objA.put_XY();cout It is object_B:n;objB.get_XY();objB.make_S();cout S=objB.get_S()endl;公有继承的测试公有继承的测试 1 5.2.

18、1 访问控制调用基类调用基类A成员函数成员函数对对 objB 的数据成员操作的数据成员操作objB.sobjB.yobjB.xobjBsobjA.yobjA.xobjAx y 第19页,本讲稿共60页#includeclass A public:void get_XY()cout x y;void put_XY()cout x=x ,y=y n;protected:int x,y;class B:public A public:int get_S()return s;void make_S()s=x*y;/使用基类数据成员使用基类数据成员x,y protected:int s;void mai

19、n()A objA;B objB;cout It is object_A:n;objA.get_XY();objA.put_XY();cout It is object_B:n;objB.get_XY();objB.make_S();cout S=objB.get_S()endl;公有继承的测试公有继承的测试 1 5.2.1 访问控制objB.sobjB.yobjB.xobjBsobjA.yobjA.xobjAx y 调用基类调用基类A成员函数成员函数对对 objB 的数据成员操作的数据成员操作第20页,本讲稿共60页#includeclass A public:void get_XY()co

20、ut x y;void put_XY()cout x=x ,y=y n;protected:int x,y;class B:public A public:int get_S()return s;void make_S()s=x*y;/使用基类数据成员使用基类数据成员x,y protected:int s;void main()A objA;B objB;cout It is object_A:n;objA.get_XY();objA.put_XY();cout It is object_B:n;objB.get_XY();objB.make_S();cout S=objB.get_S()en

21、dl;公有继承的测试公有继承的测试 1 5.2.1 访问控制调用派生类调用派生类B成员函数成员函数对对 objB 的数据成员操作的数据成员操作objB.sobjB.yobjB.xobjBsobjA.yobjA.xobjAx y 第21页,本讲稿共60页#includeclass A public:void get_XY()cout x y;void put_XY()cout x=x ,y=y n;protected:int x,y;class B:public A public:int get_S()return s;void make_S()s=x*y;/使用基类数据成员使用基类数据成员x,

22、y protected:int s;void main()A objA;B objB;cout It is object_A:n;objA.get_XY();objA.put_XY();cout It is object_B:n;objB.get_XY();objB.make_S();cout S=objB.get_S()endl;公有继承的测试公有继承的测试 1 5.2.1 访问控制objB.sobjB.yobjB.xobjBsobjA.yobjA.xobjAx y 调用派生类调用派生类B成员函数成员函数对对 objB 的数据成员操作的数据成员操作第22页,本讲稿共60页#includecl

23、ass A public:A()x=1;int out()return x;void addX()x+;private:int x;class B:public A public:B()y=1;int show()return y;void addY()y+;private:int y;void main()A a;B b;b.addX();b.addY();cout a.x=a.out()endl;cout b.x=b.out()endl;cout b.y=b.show()endl;公有继承的测试公有继承的测试 2 class B:public Aclass A a.x5.2.1 访问控制第

24、23页,本讲稿共60页#includeclass A public:A()x=1;int out()return x;void addX()x+;private:int x;class B:public A public:B()y=1;int show()return y;void addY()y+;private:int y;void main()A a;B b;b.addX();b.addY();cout a.x=a.out()endl;cout b.x=b.out()endl;cout b.y=b.show()endl;公有继承的测试公有继承的测试 2 class B:public Ac

25、lass A b.xa.xb.y5.2.1 访问控制第24页,本讲稿共60页#includeclass A public:A()x=1;int out()return x;void addX()x+;private:int x;class B:public A public:B()y=1;int show()return y;void addY()y+;private:int y;void main()A a;cout a.x=a.out()endl;B b;b.addX();b.addY();cout b.x=b.out()endl;cout b.y=b.show()endl;class B

26、:public Aclass A b.xa.xb.y5.2.1 访问控制 公有继承的测试公有继承的测试 2 第25页,本讲稿共60页#includeclass A public:A()x=1;int out()return x;void addX()x+;private:int x;class B:public A public:B()y=1;int show()return y;void addY()y+;private:int y;void main()A a;cout a.x=a.out()endl;B b;b.addX();b.addY();cout b.x=b.out()endl;c

27、out b.y=b.show()endl;class B:public Aclass A 调用构造函数调用构造函数对数据成员赋值对数据成员赋值1b.xa.xb.y5.2.1 访问控制 公有继承的测试公有继承的测试 2 第26页,本讲稿共60页#includeclass A public:A()x=1;int out()return x;void addX()x+;private:int x;class B:public A public:B()y=1;int show()return y;void addY()y+;private:int y;void main()A a;cout a.x=a

28、.out()endl;B b;b.addX();b.addY();cout b.x=b.out()endl;cout b.y=b.show()endl;class B:public Aclass A 创建派生类对象创建派生类对象调用基类构造函数调用基类构造函数 派生类构造函数派生类构造函数b.x=1 b.y=1111 1b.xa.xb.y5.2.1 访问控制 公有继承的测试公有继承的测试 2 第27页,本讲稿共60页#includeclass A public:A()x=1;int out()return x;void addX()x+;private:int x;class B:public

29、 A public:B()y=1;int show()return y;void addY()y+;private:int y;void main()A a;cout a.x=a.out()endl;B b;b.addX();b.addY();cout b.x=b.out()endl;cout b.y=b.show()endl;class B:public Aclass A 调用基类公有成员函数调用基类公有成员函数b.x+112 2b.xa.xb.y5.2.1 访问控制 公有继承的测试公有继承的测试 2 第28页,本讲稿共60页#includeclass A public:A()x=1;int

30、 out()return x;void addX()x+;private:int x;class B:public A public:B()y=1;int show()return y;void addY()y+;private:int y;void main()A a;cout a.x=a.out()endl;B b;b.addX();b.addY();cout b.x=b.out()endl;cout b.y=b.show()endl;class B:public Aclass A 调用派生类公有成员函数调用派生类公有成员函数b.y+122 2b.xa.xb.y5.2.1 访问控制 公有继

31、承的测试公有继承的测试 2 第29页,本讲稿共60页#includeclass A public:A()x=1;int out()return x;void addX()x+;private:int x;class B:public A public:B()y=1;int show()return y;void addY()y+;private:int y;void main()A a;cout a.x=a.out()endl;B b;b.addX();b.addY();cout b.x=b.out()endl;cout b.y=b.show()endl;class B:public Acla

32、ss A 调用基类函数调用基类函数返回返回 b.x 的值的值122 2b.xa.xb.y5.2.1 访问控制 公有继承的测试公有继承的测试 2 第30页,本讲稿共60页#includeclass A public:A()x=1;int out()return x;void addX()x+;private:int x;class B:public A public:B()y=1;int show()return y;void addY()y+;private:int y;void main()A a;cout a.x=a.out()endl;B b;b.addX();b.addY();cout

33、 b.x=b.out()endl;cout b.y=b.show()endl;class B:public Aclass A 调用派生类成员函数调用派生类成员函数返回返回 b.y 的值的值122 2b.xa.xb.y5.2.1 访问控制 公有继承的测试公有继承的测试 2 第31页,本讲稿共60页5.2.1 访问控制public 成员成员protected 成员成员private 成员成员public 成员成员protected 成员成员private 成员成员基类基类派生类派生类不可直接访问不可直接访问private 成员成员private 成员成员2.2.私有继承私有继承基类的基类的publ

34、icpublic和和protectedprotected成员都以成员都以privateprivate身份出现在派生身份出现在派生类中,但基类的类中,但基类的privateprivate成员不可直接访问。成员不可直接访问。第32页,本讲稿共60页私有继承示例私有继承示例:错误,私有基类中的错误,私有基类中的displaydisplay函数在派生类中为函数在派生类中为私有函数。私有函数。第33页,本讲稿共60页#includeclass A public:void get_XY()cout x y;void put_XY()cout x=x ,y=y n;protected:int x,y;cla

35、ss B:private A public:int get_S()return s;void make_S()get_XY();s=x*y;private:int s;void main()B objB;cout It is object_B:n;objB.make_S();cout S=objB.get_S()endl;私有继承的测试私有继承的测试 objB.sobjB.yobjB.xobjBprivate成员成员5.2.1 访问控制class B:private Aclass A 第34页,本讲稿共60页#includeclass A public:void get_XY()cout x

36、y;void put_XY()cout x=x ,y=y n;protected:int x,y;class B:private A public:int get_S()return s;void make_S()get_XY();s=x*y;private:int s;void main()B objB;cout It is object_B:n;objB.make_S();cout S=objB.get_S()endl;objB.sobjB.yobjB.xobjBprivate成员成员5.2.1 访问控制私有继承的测试私有继承的测试 class B:private Aclass A 第35

37、页,本讲稿共60页#includeclass A public:void get_XY()cout x y;void put_XY()cout x=x ,y=y n;protected:int x,y;class B:private A public:int get_S()return s;void make_S()get_XY();s=x*y;private:int s;void main()B objB;cout It is object_B:n;objB.make_S();cout S=objB.get_S()endl;调用基类成员函数调用基类成员函数objB.sobjB.yobjB.x

38、objBprivate成员成员5.2.1 访问控制私有继承的测试私有继承的测试 class B:private Aclass A 第36页,本讲稿共60页#includeclass A public:void get_XY()cout x y;void put_XY()cout x=x ,y=y n;protected:int x,y;class B:private A public:int get_S()return s;void make_S()get_XY();s=x*y;private:int s;void main()B objB;cout It is object_B:n;objB

39、.make_S();cout S=objB.get_S()endl;objB.sobjB.yobjB.xobjBprivate成员成员5.2.1 访问控制私有继承的测试私有继承的测试 class B:private Aclass A 第37页,本讲稿共60页#includeclass A public:void get_XY()cout x y;void put_XY()cout x=x ,y=y n;protected:int x,y;class B:private A public:int get_S()return s;void make_S()get_XY();s=x*y;privat

40、e:int s;void main()B objB;cout It is object_B:n;objB.make_S();cout S=objB.get_S()endl;class B:private Aclass A objB.sobjB.yobjB.xobjBprivate成员成员5.2.1 访问控制私有继承的测试私有继承的测试 访问私有数据成员访问私有数据成员第38页,本讲稿共60页5.2.1 访问控制public 成员成员protected 成员成员private 成员成员public 成员成员protected 成员成员private 成员成员基类基类派生类派生类不可直接访问不可直

41、接访问protected 成员成员protected 成员成员3.3.保护继承保护继承基类的基类的publicpublic和和protectedprotected成员都以成员都以protectedprotected身份出现在派生类中,身份出现在派生类中,但基类的但基类的privateprivate成员不可直接访问。成员不可直接访问。第39页,本讲稿共60页保护继承示例保护继承示例:错误,保护基类中的错误,保护基类中的displaydisplay函数在派生类中为函数在派生类中为保护成员函数,类外不可直保护成员函数,类外不可直接调用。接调用。正确,引用基类的正确,引用基类的保护成员保护成员numn

42、um。第40页,本讲稿共60页 protectprotect的特点与作用:的特点与作用:对建立其所在类对象的模块来说,它与对建立其所在类对象的模块来说,它与 private private 成员成员的性质相同。如果基类只进行了一次派生,则保护继承的性质相同。如果基类只进行了一次派生,则保护继承和私有继承的功能完全相同。和私有继承的功能完全相同。对于其派生类来说,它与对于其派生类来说,它与 public public 成员的性质相同。成员的性质相同。保护继承可以进一步派生,而私有继承则不可以,保护继承可以进一步派生,而私有继承则不可以,两者具有实质性差别。两者具有实质性差别。既实现了数据隐藏,又

43、方便继承,实现代码重用。既实现了数据隐藏,又方便继承,实现代码重用。第41页,本讲稿共60页基类成员与派生类成员的访问属性:基类成员与派生类成员的访问属性:继承继承方式方式基类成员特性基类成员特性派生类成员特性派生类成员特性派生类对象访问派生类对象访问公有公有继承继承publicpublicpublicpublic可直接访问可直接访问protectedprotectedprotectedprotected不可直接访问不可直接访问privateprivate不可访问不可访问不可直接访问不可直接访问私有私有继承继承publicpublicprivateprivate不可直接访问不可直接访问prot

44、ectedprotectedprivateprivate不可直接访问不可直接访问privateprivate不可访问不可访问不可直接访问不可直接访问保护保护继承继承publicpublicprotectedprotected不可直接访问不可直接访问protectedprotectedprotectedprotected不可直接访问不可直接访问privateprivate不可访问不可访问不可直接访问不可直接访问第42页,本讲稿共60页类类A A 为基类,类为基类,类B B 是类是类A A的派生类,类的派生类,类C C是类是类B B的派生类,则类的派生类,则类C C也是类也是类A A的派生类。类的

45、派生类。类B B是类是类A A的直接派生类,类的直接派生类,类C C 是类是类A A 的间接派生类。类的间接派生类。类 A A是类是类B B的直接基类,是类的直接基类,是类C C的间接基类。的间接基类。多级派生各成员访问属性仍满足以上原则。多级派生各成员访问属性仍满足以上原则。5.4.2 5.4.2 多级派生时的访问属性多级派生时的访问属性 第43页,本讲稿共60页多级继承示例多级继承示例:ia ia fafa ja ja kaka fb1fb1 fb2fb2 mbmbfc1fc1 ncnc类类A A类类B B类类C C公有公有私有私有公有公有不可不可访问访问保护保护保护保护保护保护私有私有保

46、护保护公有公有保护保护不可不可访问访问公有公有保护保护私有私有保护保护保护保护保护保护保护保护不可不可访问访问各个成员在不同类中访问属性:各个成员在不同类中访问属性:第44页,本讲稿共60页如如果果派派生生类类定定义义了了与与基基类类同同名名的的成成员员,在在派派生生类类中中访访问问同同名名成成员员时时屏屏蔽蔽了了基基类类的的同同名名成成员员。在在派派生生类类中中使使用用基基类类的的同同名名成员,显式地使用类名限定符。成员,显式地使用类名限定符。格式:格式:类名类名 :成员成员 重名成员包括:重名成员包括:重名数据成员重名数据成员和和重名成员函数重名成员函数。5.2.2 重名成员5.4.2 5

47、.4.2 重名成员重名成员第45页,本讲稿共60页例:例:class base public:int a,b;class derived:public base public:int b,c;void f()derived d;d.a=1;d.base:b=2;d.b=3;d.c=4;5.2.2 重名成员1.1.重名数据成员重名数据成员base a b derived a b b bc c 第46页,本讲稿共60页例:例:class base public:int a,b;class derived:public base public:int b,c;void f()derived d;d.

48、a=1;d.base:b=2;d.b=3;d.c=4;5.2.2 重名成员1.1.重名数据成员重名数据成员base a b derived d dderived a b b bc c 第47页,本讲稿共60页例:例:class base public:int a,b;class derived:public base public:int b,c;void f()derived d;d.a=1;d.base:b=2;d.b=3;d.c=4;5.2.2 重名成员base a b 1derived d dderived a b b bc c 访问从访问从base 类继承类继承的数据成员的数据成员a

49、1.1.重名数据成员重名数据成员第48页,本讲稿共60页例:例:class base public:int a,b;class derived:public base public:int b,c;void f()derived d;d.a=1;d.base:b=2;d.b=3;d.c=4;5.2.2 重名成员访问从访问从base 类继类继承的承的 bbase a b 21derived d dderived a b b bc c 1.1.重名数据成员重名数据成员第49页,本讲稿共60页例:例:class base public:int a,b;class derived:public bas

50、e public:int b,c;void f()derived d;d.a=1;d.base:b=2;d.b=3;d.c=4;5.2.2 重名成员访问访问derived 类定义类定义的数据成员的数据成员bbase a b 321derived d dderived a b b bc c 1.1.重名数据成员重名数据成员第50页,本讲稿共60页例:例:class base public:int a,b;class derived:public base public:int b,c;void f()derived d;d.a=1;d.base:b=2;d.b=3;d.c=4;5.2.2 重名成

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 资格考试

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁