私有继承与保护继承(protected 成员)
私有继承(private):
- 继承的访问控制:
- 基类的public和protected成员:都以private身份出现在派生类中
- 基类的private成员:不可直接访问
- 访问权限:
- 派生类中的成员函数:可以直接访问基类中的public和protected成员,但不能直接访问基类的private成员
- 通过派生类的对象:不能直接访问从基类继承的任何成员
保护继承(protected):
- 继承的访问控制:
- 基类的public和protected成员:都以protected身份出现在派生类中
- 基类的private成员:不可直接访问
- 访问权限:
- 派生类中的成员函数:可以直接访问基类中的public和protected成员,但不能直接访问基类的private成员
- 通过派生类的对象:不能直接访问从基类继承的任何成员
protected 成员的特点与作用:
- 对建立其所在类对象的模块来说,它与 private 成员的性质相同
- 对于其派生类来说,它与 public 成员的性质相同
- 既实现了数据隐藏,又方便继承,实现代码重用
- 如果派生类有多个基类,也就是多继承时,可以用不同的方式继承每个基类
#include<iostream>
using namespace std;
class A
{public:void SetA(int x) { this->x = x; }private:int x;
};
class B
{public:void SetB(int x) { this->y = y; }private:int y;
};
class C
{protected:void SetC(int x) { this->y = y; }private:int y;
};
class ABC: public A, protected B
{public:void SetABC(int x, int y, int z){SetA(x);SetB(y);this->z = z;}private:int z;
};
class ABC2: private ABC
{public:void SetABC2(int x) { SetB(x); }
};
int main(void)
{ABC s1;s1.SetA(5);//s1.SetB(6); 非法!因为类B是保护继承,所以通过派生类的对象:不能直接访问从基类继承的任何成员s1.SetABC(2, 5, 6);
}
私有继承与保护继承(protected 成员)相关推荐
- c/c++入门教程 - 2.4.6 继承、公共继承、保护继承、私有继承、virtual虚继承(概念、语法、方式、构造和析构顺序、同名成员处理、继承同名静态成员处理、多继承语法、菱形继承、钻石继承)
目录 4.6 继承 4.6.1 继承的基本语法 4.6.2 继承方式 4.6.3 继承中的对象模型 4.6.4 继承中构造和析构顺序 4.6.5 继承同名成员处理方式 4.6.6 继承同名静态成员处理 ...
- 关于C++中公有继承、私有继承、保护继承的讨论
一.文章来由 简单明了的理由,老生常谈但是没真正解决的问题,想搞清楚这个问题. 二.冗长的定义 我们先来看看这些冗长的定义: 公有继承: 当类的继承方式为公有继承时,基类的公有成员和保护成员的访问属性 ...
- C++_类和对象_C++继承_继承的方式_公共继承_保护继承_私有继承---C++语言工作笔记062
然后我们再去看c++中的继承,现在我们来看,c++中继承的, 3种方式. 去看上面的图,可以看到,有公共继承,有保护继承,有私有继承.3种方式. 我们去写代码去看看.首先,我们写个Base1类, 然后 ...
- C++ 公有继承、保护继承和私有继承中类成员的访问权限的控制
很多同学到现在仍然对访问权限不是很清楚,或者比较模糊,有的同学记了又忘,忘了又记,所以今天想要借这篇文章给大家做一些总结,然后提供一个比较简便的方法去记C++中的访问权限. 众所周知,C++通过pub ...
- C++中公有继承、保护继承、私有继承
就class之间的关系做一个简单的定义,继承base class的class,base class可以认为class都是自己的子女. 1.public:public表明该数据成员.成员函数是对所有用户 ...
- 公有继承,私有继承,保护继承的区别
一个子类继承父类时,可按照public.private和protected方式继承父类,每种继承方式的区别如下: 1) public继承方式 基类中所有public成员在派生类中为public属性: ...
- C++公有继承,保护继承,私有继承的区别
1.公有继承–public 公有继承时,对基类的公有成员和保护成员的访问属性不变,派生类的新增成员可以访问基类的公有成员和保护成员,但是访问不了基类的私有成员.派生类的对象只能访问派生类的公有成员(包 ...
- C++之继承探究(二):protected成员
前文:C++之继承探究(一):继承的概念 protected成员 在下面右例中,子类虽然继承了父类的私有成员b_number,但是在子类的print()函数中依然不能直接访问该私有成员,子类只能通 ...
- 类与面向对象的精华:继承【C++继承】
引入继承 为什么需要继承? 简单举例 继承 定义 定性 is-a 而不是 has-a is-a has-a 语法 继承方式 继承方式影响了什么? 公有继承 public 私有继承 private 保护 ...
最新文章
- shell脚本删除linux中的文件
- PHP实现列表页综合筛选功能,dede织梦列表页联动筛选方法功能的实现
- Flyweight Pattern简单随笔
- 学习视觉和语言的多粒度对齐?字节提出新多模态预训练方法 X-VLM:代码已开源!...
- 内蒙古银行银行招聘计算机研究生,内蒙古银行招聘公告
- batch downloading file in python
- Linux下安装软件命令详解
- 下载主题jar包并导入到idea
- (Python)实现对非人脸图片的清洗
- font-family常用字体集合
- 像素越多越好?像元的面积越小越好?为何底大一级压死人?
- MP3的采样率和比特率
- 计算机快捷键英语,输入法电脑中英文切换快捷键
- WebMagic springboot 多站点垂直数据采集(支持插队采集)
- 关于WEB服务器硬件配置,你了解多少
- hdu 2545 树上战争
- 南京旅游迈入大数据时代
- 2015年第4本(英文第3本):Godfather教父
- 从开发转型到项目经理,在初创公司我做了什么
- guid和mbr格式的区别;32位和64位操作系统的区别。
热门文章
- 学完python能做什么-学完Python开发可以从事哪些行业?
- python练手经典100例-【Python精华】100个Python练手小程序
- 学python有前途吗-三十岁了,从零开始学python还有前途吗?
- python用什么来写模块-Python 3.1 用C写模块 扩展(序)
- python爬虫从入门到放弃-python 爬虫《从入门到放弃》
- python经典实例-Python机器学习经典实例
- JavaScript基础简单入门
- 算法-斐波那契数列:兔子序列
- flock用法详解 linux_netstat命令详解
- 能识别nvme的pe启动_【腾讯WeTest干货分享】机器学习在启动耗时测试中的应用及模型调优...