同名隐藏规则,虚基类C类型兼容规则.docx_第1页
同名隐藏规则,虚基类C类型兼容规则.docx_第2页
同名隐藏规则,虚基类C类型兼容规则.docx_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

类型兼容规则同名隐藏规则虚基类虚函数一个公有派生类的对象在使用上可以被当作基类的对象,反之则禁止。具体表现在:派生类的对象可以被赋值给基类对象;可以初始化基类的引用。指向基类的指针也可以指向派生类。通过基类对象名、指针只能使用从基类继承的成员当派生类与基类中有相同成员时:若未强行指名,则通过派生类对象使用的是派生类中的同名成员。如要通过派生类对象访问基类中被覆盖的同名成员,应使用基类名限定作用主要用来解决多继承时可能发生的对同一基类继承多次而产生的二义性问题.为最远的派生类提供唯一的基类成员,而不重复产生多次拷贝注意:在第一级继承时就要将共同基类设计为虚基类。是非静态的成员函数。lvirtual 只用来说明类声明中的原型,不能用在函数实现时。具有继承性,基类中声明了虚函数,派生类中无论是否说明,同原型函数都自动为虚函数。本质:不是重载声明而是覆盖。调用方式:通过基类指针或引用,执行时会根据指针指向的对象的类,决定调用哪个函数。#include using namespace std;class B0 /基类B0声明 public:void display()coutB0:display()endl;/公有成员函数;class B1: public B0 public:void display()coutB1:display()endl; ;class D1: public B1 public:void display()coutD1:display()display();/对象指针-成员名 #include using namespace std;class B1 /声明基类B1 public: /外部接口int nV;void fun() coutMemberof B1endl;class B2 /声明基类B2 public: /外部接口int nV;void fun()coutMemberof B2endl;class D1: public B1, public B2 public:int nV; /同名数据成员void fun()coutMemberof D1endl; /同名函数成员 ;#include using namecpace std;class B0/声明基类B0 public: /外部接口int nV;void fun()coutMemberof B0endl;classB1:virtualpublicB0/B0为虚基类,派生B1类 public: /新增外部接口 int nV1;classB2: virtualpublicB0/B0为虚基类,派生B2类 public: /新增外部接口int nV2;$ #include using namespace std;class B0 /基类B0声明public: /外部接口virtual void display()/虚成员函数coutB0:display()endl;class B1: public B0 /公有派生 public:void display()coutB1:display()endl; ;class D1: public B1 /公有派生 public:void display()coutD1:display()display();int main() /主函数B0 b0; /声明B0类对象B1 b1; /声明B1类对象D1 d1; /声明D1类对象B0 *p; /声明B0类指针p=&b0; /B0类指针指向B0类对象 fun(p);p=&b1; /B0类指针指向B1类对象 fun(p);p=&d1; /B0类指针指向D1类对象 fun(p);int main()D1 d1;d1.nV=1; /对象名.成员名标识, 访问D1类成员d1.fun(); d1.B1:nV=2; / 访问基类B1成员d1.B1:fun(); d1.B2:nV=3; /访问基类B2成员d1.B2:fun(); int main() /程序主函数 D1 d1; /声明D1类对象d1d1.nV=2; /使用最远基类成员d1.fun();int main() /主函数B0 b0, *p; /声明基类对象和指针B1 b1; /声明派生类对象D1 d1; /声明派生类对象p=&b0;fun(p); /调用基类B0函数成员p=&b1;fun(p); /调用B1函数成员p=&d1;fun(p); /调用D1函数成员 运

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论