当前位置: 首页 > news >正文

成都装饰网站建设凯里建设网站

成都装饰网站建设,凯里建设网站,简洁手机导航网站模板下载安装,做物流的网站有哪些功能一.继承的定义格式 基类又叫父类#xff0c;派生类又叫子类#xff1b; 二.继承方式 继承方式分为三种#xff1a; 1.public继承 2.protected继承 3.private继承 基类成员与继承方式的关系共有9种#xff0c;见下表#xff1a; 虽然说是有9种#xff0c;但其实最常用的还…一.继承的定义格式 基类又叫父类派生类又叫子类 二.继承方式 继承方式分为三种      1.public继承      2.protected继承      3.private继承 基类成员与继承方式的关系共有9种见下表  虽然说是有9种但其实最常用的还是红框里的其它的很少用。 总结 1. 基类private成员在派生类中无论以什么方式继承都是不可见的     不可见指基类的私有成员还是被继承到了派生类对象中但是语法上限制派生类对象不       管在类里面还是类外面都不能去访问它 2.如果想要在派生类访问基类中的成员变量可以在基类中定义为 protected 成员 3.基类的其他成员在子类的访问方式 Min(成员在基类的访问限定符继承方式) 4.使用关键字class时默认的继承方式是private    使用struct时默认的继承方式是public 三.派生类和基类之间的赋值转换 1.派生类对象 可以赋值给 基类的对象 / 基类的指针 / 基类的引用这个过程又被形象的称为      切片/切割 2.基类对象不能赋值给派生类对象 3.基类的指针或者引用可以通过强制类型转换赋值给派生类的指针或者引用。但是必须是基类的指针是指向派生类对象时才是安全的 四.隐藏重定义 1.子类和父类中只要函数名相同就构成隐藏 2.成员名相同也构成隐藏 3.在子类成员函数中可以使用 基类::基类成员 显示访问隐藏的函数或成员 4.最好不要定义同名的成员变量。 隐藏重定义与重载 重载在同一作用域 隐藏在不同的作用域一个在父类一个在子类。 五.派生类中的默认成员函数 1.构造函数    派生类必须先自动调用基类的默认构造初始化基类的那一部分成员如果基类没有默     认构造就要在派生类的初始化列表阶段显式调用基类的构造函数然后派生类调用自己     的构造函数。 2.拷贝构造    派生类的拷贝构造必须先调用基类的拷贝构造完成基类的拷贝初始化。 3.赋值重载    派生类赋值重载必须先调用基类的赋值重载完成基类的复制。 4.析构函数    销毁对象时会先调用派生类的析构函数然后再自动调用基类的析构函数这样就保证     了析构的顺序即先子后父    如果不是这个顺序一个成员可能会析构两次就会导致程序崩溃比如以下的代码 class A { public:~A(){delete _a;}int* _a new int; };class B :public A { public:~B(){delete _b; A::~A(); //显式调用父类的析构函数在调用完后编译器又会自动调用一次父类的析构函数 //导致父类成员_a析构了两次从而程序崩溃}int* _b new int; };int main() {A a;B b;return 0; } 六.继承与友元静态成员 友元关系不能继承也就是说基类友元不能访问子类私有和保护成员 基类定义了static静态成员则整个继承体系里面只有一个这样的成员。无论派生出多少个子 类都只有一个static成员实例 静态成员不属于任何一个具体的实例对象而是属于类本身子类可以继承父类的静态成员而不需要重新定义。 七.多继承 多继承一个子类有两个或以上直接父类时称这个继承关系为多继承 下面就是一个多继承 class A {};class B {};class C:public A,public B //多个父类之间用逗号隔开 {}; 多继承的一个坑菱形继承 上图就构成了一个菱形继承它会导致两个问题    1.数据冗余因为会存两个Person类    2.二义性 class A { public:int _a; };class B :public A { public:int _b; };class C :public A { public:int _c; };class D :public B, public C { public:int _d; };int main() {D d;d._a; //二义性问题不知道访问的是哪个_a;d.A::_a; //显式访问解决了二义性问题但无法解决数据冗余问题return 0; }虚拟继承解决菱形继承问题 在菱形继承的腰部加上 virtual  关键字构成虚拟继承 如将上面代码class B 和  class C  改成 class B: virtual public A //虚拟继承 {};class C: virtual public A {}; 原理 通过观察菱形继承和虚拟继承的内存窗口我们发现 八.总结和反思 1.public继承是一种is-a的关系。也就是说每个派生类对象都是一个基类对象。 2.组合是一种has-a的关系。假设B组合了A每个B对象中都有一个A对象。 例如 class A {};class B {A a; //组合 }; 3.组合的耦合性比继承低所以一般推荐使用组合。 本篇文章到此就结束了 若有错误或是建议的话欢迎小伙伴们指出️ 希望小伙伴们能支持支持博主啊你们的支持对我很重要哦 谢谢你的阅读。
http://www.hkea.cn/news/14400741/

相关文章:

  • 企业网站源代码下载中建西部建设北方有限公司网站
  • 凡科建站做网站需要几天建站企业网站
  • dw网站站点正确建设方式哈尔滨教育学会网站建设
  • 网站地址ip域名查询wordpress中文源码
  • 浙江网站优化公司遂宁做网站
  • 深圳做网站要做亚马逊网站一般发什么快递公司
  • 专业的网站设计html旅游网页完整代码
  • 网站建站和维护wordpress装多个博客
  • 北京国家建设部网站首页网站上的动态图怎么做的
  • 网站推广费用ihanshi网站分享对联广告
  • 中国十大大型门户网站网站网页的像素尺
  • 佛山优化网站方法劳动局免费培训项目
  • 提供手机自适应网站制作屏蔽网站推广
  • 引蜘蛛网站取消网站的通知书
  • 支持付费下载系统的网站模板或建站软件南京做网站南京乐识权威
  • 潍坊住房和城乡建设部网站凡科专属网站免费注册
  • 毕业设计网站设计步骤在对方网站做友情链接
  • 湖北城乡住房建设厅网站恢复原来的网站
  • 深圳商城网站制作吐鲁番seo招聘
  • 网站规划与建设 ppt网页搜索软件
  • 网站建设构架网站开发法律
  • 上海定制网站开发千万不要报培训班学室内设计
  • 云酒店网站建设南京营销网站建设
  • 购物网站主页模板运动网站建设
  • 简单的模板网站代理网址上网
  • 如何创建广告网站北京网站建设推荐华网天下
  • 考研网站做刷词网站跳转如何做
  • 不用写代码做网站软件深圳做网站建设的哪家效果好又便宜
  • 个体可以做企业网站吗wordpress上传参数有哪些
  • 自助建设分销商城网站网站模板源代码下载