- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象程序设计语言c第06章继承和派生
class A { public: int pubA; void set_priA(int a) {priA=a;} void set_pubA(int a) { pubA=a;} void out_priA() {coutpriA;} private: int priA;}; void main() { A objA; objA.set_priA(1); objA.set_pubA(2); objA.out_priA(); B objB; objB.set_priA(3); objB.set_pubA(4); objB.set_priB(5); objB.set_pubB(6); objB.out_priA(); objB.out_B(); } 程序输出为: 13456 这种继承和派生机制对于已有程序的扩展和改进是极为有力的。 可以描述基类和派生类的关系为: 派生类是基类的具体化, 基类是派生类的抽象。 即基类综合了派生类的公共特征,派生类则在基类的基础上增加了某些特征,把抽象类变成具体的、实用的类型。 class base2 { public: int a, b; }; class derived: public base { public: int b, c; }; void main( ){ derived d; d.a=1; d.base::b=2; // 注意base::b使用的是base类的数据成员b d.b=3; // 使用的是derived类的数据成员b d.c=4; base * bp=d; //指向基类对象的指针变量可以指向派生类的对象 //因为派生类对象包含有一个基类对象 bp-c=10; //错误:bp仅能访问派生类中继承的基类成员 bp-a=11; bp-b=12; } class V{ public :int v;}; class A{ public :int a;}; class B:public A,virtual public V{… }; class C:public A,Virtual public V{… }; class D:public B,public C { public: void f( ) { v++; //在D中仅仅一个v ? a++;} //错误:具有二义性 }; 第六章 继承和派生 6.1派生类的概念 6.1.2 派生类的声明和继承方式 * 第六章 继承和派生 6.1派生类的概念 6.1.2 派生类的声明和继承方式 4.静态成员的派生 static成员受段约束符的限制,基类和派生类共享基类的static成员。 要求访问静态成员时,必须用“类名::成员”显式地说明。(例6-7) * 第六章 继承和派生 6.1派生类的概念 6.1.2 派生类的声明和继承方式 5.访问声明 类 D 从基类B私有派生,因而类D的派生类E不能访问间接基类 B 的所有成员。 但有些时侯,这种”一刀切”的方法会带来问题。为了满足这种需要,C++提供了一种调节机制,称为访问声明,它使得 B 的某几个成员能被类 E 所访问。 * 第六章 继承和派生 6.1派生类的概念 6.1.2 派生类的声明和继承方式 访问声明的形式为: (1)基类类名::基类保护段或公有段数据成员; (2)基类类名::基类保护段或公有段成员函数名; * class B { int a; public: int b; void f(); }; class D : private B { int d; public: B::b; B::f; int c; }; 第六章 继承和派生 6.1派生类的概念 6.1.2 派生类的声明和继承方式 对访问声明的使用需要注意以下几点: ? (1)访问声明不能说明任何类型。 (2)访问声明仅用于派生类中恢复名字的访问权限,不允许在派生类中降低或提升基类成员的可访问性。 (3)对重载函数名的访问声明将调整基类中具有该名的所有函数的访问域。 * 第六章 继承和派生 6.1派生类的概念 6.1.3基类对象的初始化 1.类等级 下面是一个继承链中的类等级图示: ? * X Y Z 子类 Child 父类 Parent 祖先类 Ancestor 直接基类 间接基类 要在派生类中访问
有哪些信誉好的足球投注网站
文档评论(0)