类与类之间的关系

  • 横向关系

依赖 关联 聚合 组合

判断方法:

  生命周期有关系:组合,聚合
  聚合:包含多个相同的类
  组合:定义的时候就要有
  依赖:只要使用就必须要有
  关联:可有可无

  • 纵向关系

继承

基类( 父类 )->派生类(子类)

 1 #include <iostream>
 2 using namespace std;
 3 
 4 class CPerson
 5 {
 6 protected:
 7     
 8 public:
 9     int age;
10     CPerson()
11     {
12         age = 100;
13     }
14 };
15 class CSuperman :public CPerson
16 {
17 protected:
18     
19 public:
20     int age;
21     CSuperman()
22     {
23         age = 123;
24     }
25 };
26 int main()
27 {
28     CPerson person;
29     CSuperman superman;
30     cout<<superman.age<<endl;                                  //123
31     cout<<superman.CPerson::age<<endl;                         //100
32     superman.CPerson::age = 111;
33     cout<<person.age<<endl;//改写的为父类中的子类,与父类没关系      //100
34     cout<<superman.CPerson::age<<endl;                         //111
35 }
  父类中 private 成员在无论怎样继承,在子类中都不可访问public 继承 public和protected 没有变化protected  继承  public 变成 protected private    继承   public, protected 变成 private
继承的构造和析构
 1 #include<iostream>
 2 using namespace std;
 3 
 4 class AA
 5 {
 6 public:
 7     AA()
 8     {
 9         cout << "AA" << endl;
10     }
11     ~AA()
12     {
13         cout << "~AA" << endl;
14     }
15 };
16 
17 class BB:public AA
18 {
19 public:
20     BB()
21     {
22         cout << "BB" << endl;
23     }
24     ~BB()
25     {
26         cout << "~BB" << endl;
27     }
28 };
29 
30 class CC
31 {
32 public:
33     CC()
34     {
35         cout << "CC" << endl;
36     }
37     ~CC()
38     {
39         cout << "~CC" << endl;
40     }
41 };
42 
43 class DD:public CC
44 {
45 public:
46     BB b;
47 public:
48     DD()
49     {
50         cout << "DD" << endl;
51     }
52     ~DD()
53     {
54         cout << "~DD" << endl;
55     }
56 };
57 
58 int main()
59 {
60     DD d;
61 
62     return 0;
63 }
 

转载于:https://www.cnblogs.com/Lune-Qiu/p/7912422.html

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

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

相关文章

C语言试题155之有五个学生,每个学生有 3 门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出 平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件“stud“中

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目:有五个学生,每个学生有 3 门…

仿照支付宝账单界面--listview分组显示 用来做!发!财树充值交易明细

QQ图片20150430155638.png (151.65 KB, 下载次数: 32) 下载链接: http://pan.baidu.com/s/1kVMY1SV 密码: i8ta

系统中常用的目录

Linux系统中常用的目录 目录 /bin 存放二进制可执行文件(ls,cat,mkdir等)&#xff0c;常用命令一般都在这里。 /etc 存放系统管理和配置文件 /home 存放所有用户文件的根目录&#xff0c;是用户主目录的基点&#xff0c;比如用户user的主目录就是/home/user&#xff0…

C语言试题156之有两个磁盘文件 A 和 B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列), 输出到一个新文件 C 中。

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目:有两个磁盘文件 A 和 B,各存…

【ArcGIS微课1000例】0002:创建渔网(Create fishnet)

本文讲解ArcGIS软件中渔网(fishnet)工具的原理,方法及使用技巧。 文章目录 微课目标工具介绍实现过程微课目标 如下图所示,影像为无人机航测生产的DOM,现在需要在ArcGIS平台中进行DLG数据采集(数字化),由于测区较大,需要创建500*500的渔网,并对影像进行裁剪下发给多…

基于http协议的api接口对于客户端的身份认证方式以及安全措施[转]

基于http协议的api接口对于客户端的身份认证方式以及安全措施 由于http是无状态的&#xff0c;所以正常情况下在浏览器浏览网页&#xff0c;服务器都是通过访问者的cookie(cookie中存储的jsessionid)来辨别客户端的身份的&#xff0c;当客户端进行登录服务器也会将登录信息存放…

使用 Scrutor 快速实现“装饰者模式”

装饰者模式介绍装饰器模式&#xff08;Decorator Pattern&#xff09;是在不改变原类和使用继承的情况下&#xff0c;动态地给一个对象添加一些额外的职责。它是通过创建一个包装对象&#xff0c;也就是装饰来包裹真实的对象。可以在如下使用场景中使用装饰器模式&#xff1a;在…

各个 Android Gradle 插件版本所需的 Gradle 版本

下表列出了各个 Android Gradle 插件版本所需的 Gradle 版本。 要获得最佳性能&#xff0c;您应该使用 Gradle 和插件这两者的最新版本。 插件版本所需的 Gradle 版本1.0.0 - 1.1.32.2.1 - 2.31.2.0 - 1.3.12.2.1 - 2.91.5.02.2.1 - 2.132.0.0 - 2.1.22.10 - 2.132.1.3 - 2.2…

JS时间戳和时间互转

https://www.cnblogs.com/nield-bky/p/6040853.html http://blog.csdn.net/csdn565973850/article/details/73838583 时间转时间戳&#xff1a; javascript获得时间戳的方法有四种&#xff0c;都是通过实例化时间对象 new Date() 来进一步获取当前的时间戳1.var timestamp1 Da…

C语言试题157之从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。 输入的字符串以!结束

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目:从键盘输入一个字符串,将小…

【ArcGIS微课1000例】0001:添加XY数据(Add XY data)生成shp

用过CASS的人都知道&#xff0c;野外数字测图得到的点数据&#xff08;平面坐标&#xff09;可以直接在CASS中展点&#xff0c;进一步绘制地形图。那么&#xff0c;带有坐标的数据能不能在ArcGIS中实现点图层的生成呢&#xff1f;答案是必须的&#xff01; 本文以气象台站Excel…

算法导论--广度优先搜索和深度优先搜索

广度优先搜索 在给定图G(V,E)和一个特定的源顶点s的情况下&#xff0c;广度优先搜索系统地探索G中的边&#xff0c;以期“发现”可从s 到达的所有顶点&#xff0c;并计算s 到所有这些可达顶点之间的距离&#xff08;即最少的边数&#xff09;。该搜索算法同时还能生成一棵根为s…

动手学 docker

背景动手学 docker最近&#xff0c;终于完成了 动手学 docker 系列的编写。动手学 docker 是 动手学系列 的首个系列。如果反馈的效果不错&#xff0c;后续还将推出 动手学 devops动手学 kubernetes动手学 istio 等系列。动手学系列 的构思来源于 李沐 老师的 动手学深度学习 。…

Linux零基础入学之1-1课程介绍了解RHEL7安装RHEL7

【本节内容】* 课程介绍* RHEL7了解* RHEL7.2的安装* 实战&#xff1a;组装服务器【Linux介绍】服务器种类&#xff1a;刀片式、塔式&#xff08;机架式&#xff09;1U&#xff1a;4.45cm 三指宽 指服务器的高度贝尔实验室 Unix 肯汤普森 & 丹尼斯里奇二人合作用…

【ArcGIS微课1000例】0003:按属性选择(Select by Attributes)

在使用ArcGIS时,可以使用 SQL 表达式基于要素属性来选择要素。 通过按属性选择 对话框可为 SQL 表达式定义一个或多个由属性、运算符和计算构成的条件。给定图层上生成的要素选择内容满足这些条件。 文章目录 按属性选择工具1. 工具箱→按属性选择图层2. 菜单栏→按属性选择3.…

[转]Android 常见安全漏洞修复理论与实践

前言 前段时间公司对应用在爱加密上进行了安全扫描&#xff0c;本文将基于爱加密的漏洞分析报告&#xff0c;针对部分内容&#xff0c;介绍理论修复实践 最小化特权准则概念介绍 最小化特权准则&#xff0c;即指组件只能供自身应用调用&#xff0c;尽可能禁止其他应用访问及…

C语言试题158之从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个#为止。

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目:从键盘输入一些字符,逐个把…

html5--3.2 input元素(1)

html5--3.2 input元素(1) 学习要点 input元素及其属性input元素 用来设置表单中的内容项&#xff0c;比如输入内容的文本框&#xff0c;按钮等不仅可以布置在表单中&#xff0c;也可以在表单之外的元素使用input元素的属性 type属性&#xff1a;指定输入内容的类型&#xff0c;…

css3 3D

● css3 3D旋转 ○ rotateX() 方法&#xff0c;元素围绕其 X 轴以给定的度数进行旋转 ○ rotateY() 方法&#xff0c;元素围绕其 Y 轴以给定的度数进行旋转 ○ rotateZ(angle)&#xff0c;定义沿 Z 轴的 3D 旋转。 ● 3D景深 ○ perspective(n)&#xff0c;景深&#xff0c;离屏…

我是怎么自学 Git / GitHub 的?

大家好我是鱼皮&#xff0c;Git 和 GitHub 是如今团队协作开发必不可少的技能&#xff0c;且不说程序员&#xff0c;就连很多产品也在学习它们。今天分享一下我自学 Git 和 GitHub 的经验&#xff0c;希望起到一个 导学 的作用&#xff0c;帮助大家抓住重点&#xff0c;节省时间…