wordpress心理教育网站南宁网站建设 南宁联达亿

diannao/2026/1/26 3:49:39/文章来源:
wordpress心理教育网站,南宁网站建设 南宁联达亿,永久免费网站怎么建,手机版 演示 网站 触摸顾得泉#xff1a;个人主页 个人专栏#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂#xff0c;年薪百万#xff01; 一、继承与友元 友元关系不能继承#xff0c;也就是说基类友元不能访问子类私有和保护成员。 class Student; class Per… 顾得泉个人主页 个人专栏《Linux操作系统》 《C从入门到精通》  《LeedCode刷题》 键盘敲烂年薪百万 一、继承与友元 友元关系不能继承也就是说基类友元不能访问子类私有和保护成员。 class Student; class Person { public:friend void Display(const Person p, const Student s); protected:string _name; // 姓名 }; class Student : public Person { protected:int _stuNum; // 学号 }; void Display(const Person p, const Student s) {cout p._name endl;cout s._stuNum endl; } void main() {Person p;Student s;Display(p, s); }当我们把这段代码放入VS中我们可以看到 用通俗的话语来说你爸爸的朋友不一定是你的朋友哈哈。 二、继承与静态成员 基类定义了static静态成员则整个继承体系里面只有一个这样的成员。无论派生出多少个子类都只有一个static成员实例 。 class Person { public :Person () { _count ;} protected :string _name ; // 姓名 public :static int _count; // 统计人的个数。 }; int Person :: _count 0; class Student : public Person { protected :int _stuNum ; // 学号 }; class Graduate : public Student { protected :string _seminarCourse ; // 研究科目 }; void TestPerson() {Student s1 ;Student s2 ;Student s3 ;Graduate s4 ;cout 人数 : Person ::_count endl;Student ::_count 0;cout 人数 : Person ::_count endl; } 由结果可得  三、复杂的菱形继承及菱形虚拟继承 单继承一个子类只有一个直接父类时称这个继承关系为单继承 多继承一个子类有两个或以上直接父类时称这个继承关系为多继承 菱形继承菱形继承是多继承的一种特殊情况。 菱形继承的问题从下面的对象成员模型构造可以看出菱形继承有数据冗余和二义性的问题。在Assistant的对象中Person成员会有两份。 class Person { public :string _name ; // 姓名 }; class Student : public Person { protected :int _num ; //学号 }; class Teacher : public Person { protected :int _id ; // 职工编号 }; class Assistant : public Student, public Teacher { protected :string _majorCourse ; // 主修课程 }; void Test () {// 这样会有二义性无法明确知道访问的是哪一个Assistant a ;a._name peter;// 需要显示指定访问哪个父类的成员可以解决二义性问题但是数据冗余问题无法解决a.Student::_name xxx;a.Teacher::_name yyy;} 虚拟继承可以解决菱形继承的二义性和数据冗余的问题。如上面的继承关系在Student和Teacher的继承Person时使用虚拟继承即可解决问题。需要注意的是虚拟继承不要在其他地方去使用。 虚拟继承解决数据冗余和二义性的原理 为了研究虚拟继承原理我们给出了一个简化的菱形继承继承体系再借助内存窗口观察对象成员的模型。 class A { public:int _a; }; // class B : public A class B : virtual public A { public:int _b; }; // class C : public A class C : virtual public A { public:int _c; }; class D : public B, public C { public:int _d; }; int main() {D d;d.B::_a 1;d.C::_a 2;d._b 3;d._c 4;d._d 5;return 0; } 下图是菱形继承的内存对象成员模型这里可以看到数据冗余 下图是菱形虚拟继承的内存对象成员模型这里可以分析出D对象中将A放到的了对象组成的最下面这个A同时属于B和C那么B和C如何去找到公共的A呢这里是通过了B和C的两个指针指向的一张表。这两个指针叫虚基表指针这两个表叫虚基表。虚基表中存的偏移量。通过偏移量可以找到下面的A。 下面是上面的Person关系菱形虚拟继承的原理解释 四、继承的总结和反思 1.很多人说C语法复杂其实多继承就是一个体现。有了多继承就存在菱形继承有了菱形继承就有菱形虚拟继承底层实现就很复杂。所以一般不建议设计出多继承一定不要设计出菱形继承。否则在复杂度及性能上都有问题。      2.多继承可以认为是C的缺陷之一很多后来的OO语言都没有多继承如Java。      3.继承和组合         ①public继承是一种is-a的关系。也就是说每个派生类对象都是一个基类对象。         ②组合是一种has-a的关系。假设B组合了A每个B对象中都有一个A对象。         ③优先使用对象组合而不是类继承 。         ④继承允许你根据基类的实现来定义派生类的实现。这种通过生成派生类的复用通常被称为白箱复用(white-box reuse)。术语“白箱”是相对可视性而言在继承方式中基类的内部细节对子类可见 。继承一定程度破坏了基类的封装基类的改变对派生类有很大的影响。派生类和基类间的依赖关系很强耦合度高。         ⑤对象组合是类继承之外的另一种复用选择。新的更复杂的功能可以通过组装或组合对象来获得。对象组合要求被组合的对象具有良好定义的接口。这种复用风格被称为黑箱复用(black-box reuse)因为对象的内部细节是不可见的。对象只以“黑箱”的形式出现。组合类之间没有很强的依赖关系耦合度低。优先使用对象组合有助于你保持每个类被封装。        ⑥ 实际尽量多去用组合。组合的耦合度低代码维护性好。不过继承也有用武之地的有些关系就适合继承那就用继承另外要实现多态也必须要继承。类之间的关系可以用继承可以用组合就用组合。 结语C关于继承的分享到这里就结束了希望本篇文章的分享会对大家的学习带来些许帮助如果大家有什么问题欢迎大家在评论区留言~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/88074.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

沈阳市城乡建设局网站网站建设行业如何

Python 中的迭代器(Iterator)是一个可以记住遍历位置的对象,用于迭代列表、元组、字典、集合和字符串等可迭代(Iterable)对象,迭代器从集合的第一个元素开始访问,直到所有的元素被访问完结束&am…

网站设计 重庆网站建设和优司怎么样

虽然 Vite 目前可以与 Bun 配合使用,但它尚未进行大量优化,也未调整以使用 Bun 的打包器、模块解析器或转译器。 Vite 可以与 Bun 完美兼容。从 Vite 的模板开始使用吧。 bun create vite my-app ✔ Select a framework: › React ✔ Select a variant:…

小说网站排名宜兴市网站建设

英文原文:Why Java Is a Purely Object-Oriented Language Or Why NotJava是否确实是 “纯面向对象”?让我们深入到Java的世界,试图来证实它。在我刚开始学习Java的前面几年,我从书本里知道了Java是遵循“面向对象编程范式(Object…

网站建设的基础知识与维护app公司开发价格

开发者的日常作为一名996的开发者,我几乎每天只有两件事,制造bug和解决bug,这两件事,既替我解决了温饱问题、也替产品经理、测试工程师等一票人解决了吃穿问题。嗯,有人为我这种程序员评了一个等级,我大概是…

东莞网站建设代理延吉网站建设depawo

http://codeforces.com/contest/876/problem/D 题意&#xff1a;题意真是难懂&#xff0c;就是给一串序列&#xff0c;第i次操作会在p[x]&#xff08;1<x<i&#xff09;这些位置放上硬币&#xff0c;然后从左到右观察&#xff0c;如果第i个位置有硬币但第i1个位置没有硬币…

咸阳网站建设公司电话寻花问柳专注做男人喜爱的网站

下面介绍一下 Playwright 中的基本概念&#xff1a;Headless 浏览器Playwright 需要特定版本的浏览器二进制文件才能运行。这些浏览器都支持 2 种 运行模式&#xff1a;Headless&#xff0c;无浏览器 UI&#xff0c;运行速度较快&#xff0c;常用于自动化运行Headed&#xff0c…

网站建设科dw用表格做网站

问&#xff1a;golang 函数 getIndex(n,addr,Hlen,Tlen) 返回index。参数n为index的上限&#xff0c;addr为包含大小写字母数字的字符串,Hlen为截取addr头部的长度&#xff0c;Tlen为截取addr尾部的长度 gpt: 你可以编写一个函数来计算根据给定的参数 n、addr、Hlen 和 Tlen …

注册域名网站备案网站建设完成确认函

目录 一、Android Studio下载地址二、开发环境JDK三、开始安装Android Studio四、案例展示与搭建五、人工智能算法模型移动端部署案例参考 一、Android Studio下载地址 https://developer.android.google.cn/studio/install.html 电脑配置要求&#xff1a; 下载保存在指定文…

企业营销型网站建设开发找清包工程上什么网

截至2020年&#xff0c;Windows 10的市场份额达到了54.62%&#xff0c;成为了Windows家庭中占比最高的成员。微软也于2020年初对Windows 7做了不再进行技术支持的声明&#xff01;毋庸置疑的是&#xff0c;Windows 10的系统会逐渐占有更多的比例&#xff0c;并且逐步取代现有的…

大会的网站架构长沙制作公园仿竹护栏哪家好

1 使用通配符列出文件夹的内容 ls ~/videos/*.wmv 刚才你已经学会了如何在包含多个文件的目录中查找文件&#xff0c;但是还有一种更快的方法。如果你知道正在找的Tiger Woods的视频文件是Windows Media格式的&#xff0c;那么这个文件名一定是以.wmv为后缀的&#xff0c;这时…

企业做网站需要哪些材料seo实战培训班

前言 机器学习分为&#xff1a;监督学习&#xff0c;无监督学习&#xff0c;半监督学习&#xff08;也可以用hinton所说的强化学习&#xff09;等。 在这里&#xff0c;主要理解一下监督学习和无监督学习。 监督学习&#xff08;supervised learning&#xff09; 从给定的训…

对网站备案的认识免费素材网站下载

最近建了一个技术交流群&#xff0c;欢迎志同道合的同学加入&#xff0c;群里主要讨论&#xff1a;分享业务解决方案、深度分析面试题并解答工作中遇到的问题&#xff0c;同时也能为我提供写作的素材。 欢迎加Q&#xff1a;312519302&#xff0c;进群讨论 前言 在工作中&#…

人力资源网站模板一个虚拟主机多个网站

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享VTK样例RadiusOutlierRemoval,并解析接口vtkRadiusOutlierRemoval,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的…

如何开发wap网站做企业专业网站一般要多少钱

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

建网站的软件软件公司网站源码

Eclipse控制web项目的访问名称 web项目的访问路径&#xff08;名称&#xff09;修改 1.点击项目右键-》properties找到Context root 修改成我们需要的名字即可转载于:https://www.cnblogs.com/pypua/articles/7379950.html

装修公司做网销的网站建设银行观澜支行网站

gitlab备份文件上传腾讯云COS 脚本说明脚本名称&#xff1a;upload.py 假设gitlab备份文件目录&#xff1a;/opt/gitlab/backups gitlab备份文件格式&#xff1a;1706922037_2024_02_06_14.2.1_gitlab_backup.tar1.脚本需和gitlab备份文件同级目录 2.根据备份文件中的日期判断…

深圳东门希尔顿欢朋酒店外贸网站seo优化方案

免责声明 如果觉得我必须从一个重要的免责声明开始这篇文章&#xff1a; 不要太相信我要说的话。 我之所以这样说&#xff0c;是因为我们正在讨论安全性。 而且&#xff0c; 当您谈论安全性时&#xff0c;除了100&#xff05;正确的陈述外&#xff0c;还有冒任何其他风险的风险…

医院网站建设 不足农业电商网站建设

在混合开发中避免不了通信&#xff0c;简单记录一下&#xff0c;Flutter iOS工程与Flutter 之间相互通信。 Flutter中通过Platform Channel实现Flutter和原生端的数据传递&#xff0c;是怎么进行数据通信&#xff0c;以及怎么配置&#xff0c;下面一一进行详解。 FlutterMetho…

深圳设计网站培训班企业网站建设公司注意哪些问题

所有代码块都是在Jupyter Notebook下进行调试运行&#xff0c;前后之间都相互关联。 文中所有代码块所涉及到的函数里面的详细参数均可通过scikit-learn官网API文档进行查阅&#xff0c;这里我只写下每行代码所实现的功能&#xff0c;参数的调整读者可以多进行试验调试。多动手…

网站群cmswordpress按分类调用文章

环境说明 系统版本&#xff1a;Ubuntu 20.04 VirtualBox版本&#xff1a; 7.0.12 解决过程 扩展下载&#xff0c;进入VirtualBox 官方下载路径。选择本机安装版本&#xff0c;如下图所示&#xff0c;因笔者是7.0.x版本&#xff0c;因此点击第一条链接&#xff1b; 进入版本页…