C++ 继承方式 //语法:class 子类 :继承方式 父类 //继承方式 三种: //1.公共继承 //2.保护继承 //3.私有继承
1 //继承方式
2 //语法:class 子类 :继承方式 父类
3 //继承方式 三种:
4 //1.公共继承
5 //2.保护继承
6 //3.私有继承
7
8 #include <iostream>
9 #include <string>
10 using namespace std;
11
12 //继承方式
13 //1.公共继承
14 class Base1
15 {
16 public:
17 int m_A;
18 protected:
19 int m_B;
20 private:
21 int m_C;
22
23 };
24 //1.公共继承
25 class Son1 :public Base1
26 {
27 public:
28 void func()
29 {
30 m_A = 10; //父类中的公共权限成员 到子类中依然是 公共权限
31
32 m_B = 20; //父类中的公共权限成员,到子类依然是 保护权限
33 //类内可以访问 类外不可以访问
34
35 //m_C = 30; //父类中的私有全程成员,到子类中 访问不到
36 }
37 };
38
39 void test01()
40 {
41 Son1 s1;
42 s1.m_A = 100;
43 //s1.m_B = 100; //类内可以访问 类外不可以访问
44
45
46 }
47 //保护继承
48 class Base2
49 {
50 public:
51 int m_A;
52 protected:
53 int m_B;
54 private:
55 int m_C;
56
57
58 };
59
60 class Son2 : protected Base2
61 {
62 public:
63 void func2()
64 {
65 m_A = 100; //父类中公共成员到 子类中变为保护权限
66 m_B = 100; //没有发生变化 还是私有成员
67
68 //m_C = 100; //父类中私有成员 子类访问不到
69 }
70 };
71
72 void test02()
73 {
74 Son2 s2;
75 //s2.m_A = 1000; //在Son2中已经变为了 保护权限 所以类外 访问不到
76 //s2.m_B = 200; //在Son2中已经变为了 保护权限 所以类外 访问不到
77 //s2.m_C = 551; //私有成员不可以访问
78
79
80 }
81 //私有继承
82 class Base3
83 {
84 public:
85 int m_A;
86 protected:
87 int m_B;
88 private:
89 int m_C;
90
91 };
92 class Son3 :private Base3
93 {
94 public:
95 void func3()
96 {
97 m_A = 100; //父类中公共成员到子类中变为 私有成员
98
99 m_B = 200; //父类中保护成员到子类中变为 私有成员
100
101 //m_C = 120; //父类中的私有成员 子类不可以访问
102 }
103
104 };
105 class GrandSon4 : public Son3
106 {
107 public:
108 void func4()
109 {
110 //m_A = 1000; //到了 Son3中 m_A 变为私有,即使是 儿子也访问不到
111 //m_B = 2000; //到了 Son3中 m_A 变为私有,即使是 儿子也访问不到
112 }
113
114 };
115 void test03()
116 {
117 Son3 s3;
118
119 //s3.m_A = 200; //到Son3中 变为私有成员 访问不到
120 //s3.m_B = 100; //到Son3中 变为私有成员 访问不到
121 //s3.m_C = 300; //父类中的私有成员 子类不可以访问
122
123 }
124
125 int main()
126 {
127
128
129 system("pause");
130
131 return 0;
132
133 }
C++ 继承方式 //语法:class 子类 :继承方式 父类 //继承方式 三种: //1.公共继承 //2.保护继承 //3.私有继承的更多相关文章
- [面向对象之继承应用(在子类派生重用父类功能(super),继承实现原理(继承顺序、菱形问题、继承原理、Mixins机制),组合]
[面向对象之继承应用(在子类派生重用父类功能(super),继承实现原理(继承顺序.菱形问题.继承原理.Mixins机制),组合] 继承应用 类与类之间的继承指的是什么'是'什么的关系(比如人类,猪类 ...
- 官网安装Python包太慢?教你三种下载安装方式-PiP、conda、轮子,教你三种Pytorch的下载安装方式,保证你再也不用出现Error
上一期我们介绍了CUDA下载安装以及其总结,这一期教大家如何在Anaconda中使用CUDA来进行加速.神经网络依赖cuDNN的下载安装,以及下载和安装Pytorch-GPU安装包的三种方式(cond ...
- Second Day: 关于Button监听事件的三种方法(匿名类、外部类、继承接口)
第一种:通过匿名类实现对Button事件的监听 首先在XML文件中拖入一个Button按钮,并设好ID,其次在主文件.java中进行控件初始化(Private声明),随后通过SetOnClickLis ...
- 创建多线程的第一种方式——创建Thread子类和重写run方法
创建多线程的第一种方式——创建Thread子类和重写run方法: 第二种方式——实现Runnable接口,实现类传参给父类Thread类构造方法创建线程: 第一种方式创建Thread子类和重写run方 ...
- Effective C++ 第二版 40)分层 41)继承和模板 42)私有继承
条款40 通过分层来体现"有一个"或"用...来实现" 使某个类的对象成为另一个类的数据成员, 实现将一个类构筑在另一个类之上, 这个过程称为 分层Layeri ...
- C++中的三种继承关系
C++中的三种继承关系 先看类中声明成员时的三种访问权限 public : 可以被任意实体访问 protected : 只允许子类及本类的成员函数访问 private : 只允许本类的成员函数访问 在 ...
- Java并发编程:Java创建线程的三种方式
目录 引言 创建线程的三种方式 一.继承Thread类 二.实现Runnable接口 三.使用Callable和Future创建线程 三种方式的对比 引言 在日常开发工作中,多线程开发可以说是必备技能 ...
- js oop中的三种继承方法
JS OOP 中的三种继承方法: 很多读者关于js opp的继承比较模糊,本文总结了oop中的三种继承方法,以助于读者进行区分. <继承使用一个子类继承另一个父类,子类可以自动拥有父类的属性和方 ...
- 【朝花夕拾】Android自定义View篇之(四)自定义View的三种实现方式及自定义属性使用介绍
前言 转载请声明,转自[https://www.cnblogs.com/andy-songwei/p/10979161.html],谢谢! 尽管Android系统提供了不少控件,但是有很多酷炫效果仍然 ...
- JS面向对象(3) -- Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...
随机推荐
- Redisson 分布式锁源码 02:看门狗
前言 说起 Redisson,比较耳熟能详的就是这个看门狗(Watchdog)机制. 本文就一起看看加锁成功之后的看门狗(Watchdog)是如何实现的? 加锁成功 在前一篇文章中介绍了可重入锁加锁的 ...
- Vue 利用后端的数据字典和Map对象实现表格列字段动态转义的处理方案
1.前言 Vue中,使用el-table组件,经常遇到列字段转义的问题.常规处理方法有以下两种: 方法1:在模板中使用v-if,直接转义.如: <el-table-column label= ...
- 36、网卡绑定bond
注意:虚拟机需要网卡模式为同一模式,否则无法进行通信: 36.1.mode0(平衡负载模式): 平时两块网卡均工作,且自动备援,但需要在与服务器本地网卡相连的交换机设备上进行端口聚合来支持绑定技术. ...
- 13.3示例:抽象的Number类
要点提示:Number类是数值包装类.BigInteger以及BigDecimal的抽象父类.
- filebeat 提取获取massage字段 利用pipeline grok 7.12
嘴巴会说(情商)比技术有时候更重要! 水平有限,希望你看完有所收获! 背景 1,filebeat直连Elasticsearch,需要对massage提取一些特定的字段. 2,如果你对数据需要处理的比较 ...
- Linux Netfilter框架分析
目录 Netfilter框架 Netfilter的5个hook点 netfilter协议栈数据流分析 连接跟踪conntrack conntrack连接跟踪表条目 连接跟踪表大小 管理连接跟踪表 ip ...
- APP-SECURITY-404 组件导出漏洞复现
参考资料:https://github.com/wnagzihxa1n/APP-SECURITY-404/blob/master/2.%E7%BB%84%E4%BB%B6%E5%AF%BC%E5%87 ...
- 你会用哪些JavaScript循环遍历
总结JavaScript中的循环遍历定义一个数组和对象 const arr = ['a', 'b', 'c', 'd', 'e', 'f']; const obj = { a: 1, b: 2, c: ...
- spring集成flyway
最近给公司项目集成flyway,由于我们项目移动端使用的是spring框架,网上看了很多博客,感觉这方面的东西还是很少的,毕竟现在是springboot的天下,大多数都是springboot集成fly ...
- 2021 MySQL安装教程(最新教程)- 含网盘下载
大家好,我是 我玩亚索我会C.最近电脑重装系统了,然后就想着装个MySQL,由于很久没装过了,于是上网搜索了教程,但是发现现在MySQL安装和之前的不一样了,网上都是旧版的安装教程,所以我就做一篇新版 ...