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

网站建设uuiop做音乐下载网站

网站建设uuiop,做音乐下载网站,欧美做的爱爱网站,seo顾问咨询文章目录 子类继承父类之后#xff0c;子类的默认成员函数的变化构造函数编译器自动生成的构造函数程序员手动写的构造函数 拷贝构造编译器自动生成的拷贝构造函数程序员手动写的拷贝构造函数 赋值重载编译器自动生成的赋值重载程序员手动写的赋值重载 析构函数 继承与友元菱形… 文章目录 子类继承父类之后子类的默认成员函数的变化构造函数编译器自动生成的构造函数程序员手动写的构造函数 拷贝构造编译器自动生成的拷贝构造函数程序员手动写的拷贝构造函数 赋值重载编译器自动生成的赋值重载程序员手动写的赋值重载 析构函数 继承与友元菱形继承什么是菱形继承如何解决菱形继承虚继承的原理菱形继承的使用建议【能不用就不用】 接上“集”【继承 上【C】】 子类继承父类之后子类的默认成员函数的变化 构造函数 编译器自动生成的构造函数 子类中的编译器自动生成的构造函数会先子类构造函数的成员初始化列表中调用父类的默认构造函数【即不需要传参数就能调用的构造】再完成子类自己的构造函数 例 如果父类没有默认构造编译器自动生成的构造函数就会报错 此时需要我们手动写子类的构造函数并在其成员初始化列表中传参调用父类的构造 程序员手动写的构造函数 子类中,程序员手动写的构造函数在我们自己没有在成员初始化列表中显式调用父类的构造的时候编译器也会帮我们自动调用父类的默认构造 例 当然此时如果父类没有默认构造就必须我们自己手动在成员初始化列表里传参调用了 例 拷贝构造 编译器自动生成的拷贝构造函数 子类中编译器自动生成的拷贝构造函数会先自动在子类的拷贝构造的成员初始化列表中调用父类的拷贝构造再完成子类自己的拷贝构造 程序员手动写的拷贝构造函数 因为手动写了所以编译器不会自动生成拷贝构造了那么编译器就不会自动帮我们调用父类的拷贝构造了 例 所以 子类中程序员手动写的拷贝构造函数必须由程序员自己手动在子类的拷贝构造的成员初始化列表中传参调用父类的拷贝构造【此时传参传子类的拷贝构造接收到的参数就行因为继承上中提到的子类对象可以赋值给父类对象子类对象多出来的部分会“切割”掉】 例 赋值重载 编译器自动生成的赋值重载 子类中编译器自动生成的赋值重载函数会先自动地调用父类的赋值重载再完成子类自己的赋值重载 例 程序员手动写的赋值重载 因为手动写了所以编译器不会自动生成赋值重载了那么编译器就不会自动帮我们调用父类的赋值重载了 例 所以 子类中程序员手动写的赋值重载必须由程序员自己手动在子类的赋值重载中 传参调用父类的赋值重载【此时传参传子类的拷贝构造接收到的参数就行因为继承上中提到的子类对象可以赋值给父类对象子类对象多出来的部分会“切割”掉】 例 为什么在子类中调用父类的赋值重载必须要指定父类的类域呢 这是因为子类和父类的赋值重载同名了构成了隐藏继承 上【C】中就说过 如果在子类里面调用构成隐藏的成员不指定类域的话就只会调用子类自己的成员 所以才必须指定父类的类域这样才能调用到父类的赋值重载 析构函数 析构函数比较特殊无论是编译器自动生成的析构还是程序员自己手动写的析构 子类的析构调用完成之后都会再自动地调用父类析构 例 继承与友元 类和对象【六】友元和内部类中就提到过 友元关系是不能继承的也就是说父类友元不能访问子类私有和保护成员 可以形象的理解成妈妈的朋友不是我的朋友 但是也不是说我不能和她交朋友 菱形继承 什么是菱形继承 举个例子 这样继承的话D里面就会有两份A的成员就会造成两个重大的问题 数据冗余即D类里面有两份A的成员而且这两份完全重复没有必要都存在访问会有二义性因为D类里面有两份A的成员那么通过D类的对象访问A类的成员就不知道要访问这两份中的那一份 如何解决菱形继承 使用虚继承可以解决菱形继承产生的问题【注意不要在解决菱形继承以外的场景中使用虚继承】 使用虚继承之后D类中就只有一份A的成员了 虚继承的语法 在会产生两份多份数据的根源的继承权限的前面加上virtual 上面那个例子就是在B和C继承A的时候在B和C的继承权限前面加上关键字virtual即可 因为B和C继承A时就是D中会产生两份A的数据的根源 虚继承的原理 继续使用之前的例子 ①使用虚继承之前 D类对象的组成如上图 D类里面有两个父类的部分一个从B那里继承来的以下简称D中的B一个从C那里继承来的以下简称D中的C 他们里面都有类A的成员即a ②使用虚继承之后 D类对象的组成如下图 也就是使用虚继承之后 B类和C类的父类A的成员会单独存在D类对象的最后然后D类中的B和C就共享这公共的A 这个时候D中的B和C原本存储A类的成员的地方就变成存储一个指针称为虚基表指针 这个指针指向一张虚基表虚基表里面存了偏移量 D对象中的B和C就可以通过各自的虚基表指针找到各自的虚拟表 然后通过里面存储的偏移量找到D对象中存储的公共的A的成员 菱形继承的使用建议【能不用就不用】 现实编写代码的过程中可以使用多继承但是尽量不要产生菱形继承 即 菱形继承能不用就不用
http://www.hkea.cn/news/14537696/

相关文章:

  • 网站版块策划中国机械加工行业的现状
  • 赤坎手机网站建设公司自己可以开发一个软件吗
  • 网站的建设目标文档vs2010 网站开发源码
  • 成都微信网站建设wordpress 4.3.18漏洞
  • 学佛网站开发项目需求分析网站问题有哪些内容
  • 网站页尾模板wordpress主题安装失败进不了后台
  • 网站推广方式百度云网站设计规划书
  • 无锡市新吴区建设环保局网站移动互联网的应用论文
  • 网站平台在线提交功能互联网定制网站
  • 关于网站建设实验报告阿克苏地区住房和城乡建设局网站
  • 做网站需要服务器和什么软件中国招标投标公共信息服务平台
  • 如何为网站添加谷歌分析工具商城类网站建设步骤
  • 买完服务器怎么做网站wordpress去除评论表单
  • 兰州网站建设q.479185700棒沈阳专业做网站方案
  • jsp网站开发四酷全书怎样申请免费网站空间
  • 网站制作比较好的公司济宁网站运营策略
  • 个人适合做什么网站增城微信网站建设
  • 建设银行查余额网站传奇手游网页版
  • php商城网站开发报告私人私密浏览器免费下载
  • 保定中小企业网站制作wordpress进入文字版
  • apache 本地网站大连网站如何制作
  • 灰色网站模板游戏介绍网站模板
  • 手机网站个人中心源码广州网站订制开发
  • 博览局网站建设深圳大浪有做网站的吗
  • 无障碍环境建设 网站做包装找灵感看什么网站
  • 做阿里网站的分录手机端网站建设教程
  • 导购网站开发要多少钱淮安网站建设工作室
  • 广州 门户seo优秀网站
  • 茶叶网站源码深圳品牌馆设计公司
  • 做一手楼房的网站营销型网站建设营销型网站建设