C++中类成员和类继承的private、protected和public关键字作用
摘要
C++中类成员和类继承的private、protected和public关键字作用。
类成员中,private、protected和public
类成员变量或函数前加上关键字private、protected和public的含义如下:
public: 表示该成员允许被任意实体访问
protected: 表示该成员只允许被本类和子类的成员访问
private: 表示该成员只允许本类的成员访问
概括如下表所示:
关键字 | 类内访问 | 子类访问 | 类外访问 |
---|---|---|---|
public | √ | √ | √ |
protected | √ | √ | |
private | √ |
注意: 类成员包括类内声明的变量和函数。
类继承时,private、protected和public
派生类继承基类的继承方式有三种:public、protected和private。
在未指定的情况下编译器会默认继承方式为protected或private方式。
不同继承方式下,基类成员
在派生类中的属性将会转换,转换关系概括如下:
基类成员属性 | public继承方式 | protected继承方式 | private继承方式 |
---|---|---|---|
public | public | -> protected | -> private |
protected | protected | protected | -> private |
private | -> 不可访问 | -> 不可访问 | -> 不可访问 |
上表所表达的意思如下:
- public继承方式 ——
class derived : public base
基类中所有public成员在派生类中为public属性;
基类中所有protected成员在派生类中为protected属性;
基类中所有private成员在派生类中不可访问。 - protected继承方式 ——
class derived : protectedbase
基类中的所有public成员在派生类中为protected属性;
基类中的所有protected成员在派生类中为protected属性;
基类中的所有private成员在派生类中仍然不可访问。 - private继承方式 ——
class derived : private base
基类中的所有public成员在派生类中均为private属性;
基类中的所有protected成员在派生类中均为private属性;
基类中的所有private成员在派生类中均不可访问。
相关/参考链接
https://www.cnblogs.com/BeyondAnyTime/archive/2012/05/23/2514964.html
http://www.weixueyuan.net/view/6359.html
C++中类成员和类继承的private、protected和public关键字作用相关推荐
- C++知识点47——类继承中的类型转换与访问权限控制(下)
接上一篇文章https://blog.csdn.net/Master_Cui/article/details/109768311 五.派生类向基类转换的可访问性 当一个子类向基类转化时:有以下三条规则 ...
- C++ 类访问控制public/private/protected探讨
摘要:本文是从饮水思源BBS C/C++版上一篇帖子引发的思考.当时看到帖子,突然觉得平时见惯了的,在这里似乎变得陌生了,究竟访问控制符怎样起作用,怎样使用,该怎样理解,本文试图给出讨论. 原帖如下 ...
- C++类中的访问权限问题---public/protected/private
派生类继承了基类的全部数据成员和除了构造.析构函数之外的全部成员函数,但是这些成员的访问属性在派生的过程中通过继承方式可以来调整. 第一:private,public,protected方法的访问范围 ...
- C++的类继承与类模板
类继承是面向对象编程中很重要(也是很难)的内容,其能有效地提高代码复用水平,提高开发的效率. 目录 基本概念 公有继承 私有继承.保护继承 包含 多重继承 类模板 基本概念 继承的种类与特点 C++中 ...
- 写底层 jdbc 实现mysql数据库增删改的 合并方法 的类 继承ConnectionFactory 实现DaoMessage接口: 并批量添加数据
接口: public interface DaoMessage<T> {int ERROR = 0x400;int SUCCESS = 0x200; //接口参数默认finalint ge ...
- public,private,protected,default详解
[一]public,private,protected,default public 作用:可以被该类的和非该类的任何成员访问. 注意:使用public关键字声明的类必须与java文件名保持一致,并且 ...
- C++中public/private/protected三种继承方式下基类成员对派生类的可见性探讨
原文: http://blog.csdn.net/zgjxwl/article/details/4804233 1.public继承方式下 #include <iostream> ...
- C++ 笔记(16)— 类和对象(类定义、类实例对象定义、访问类成员、类成员函数、类 public/private/protected 成员、类对象引用和指针)
1. 类的定义 类定义是以关键字 class 开头,后跟类的名称.并在它后面依次包含类名,一组放在 {} 内的成员属性和成员函数,以及结尾的分号. 类声明将类本身及其属性告诉编译器.类声明本身并不能改 ...
- python如何定义类_Python中类的定义、继承及使用对象实例详解
本文实例讲述了Python中类的定义.继承及使用对象的方法.分享给大家供大家参考.具体分析如下: Python编程中类的概念可以比作是某种类型集合的描述,如"人类"可以被看作一个类 ...
最新文章
- Ubuntu14.04 python 2.7环境下安装Scrapy
- linux如何添加默认路由表_Linux-如何添加路由表
- thrift的中文编码处理
- Windows打印体系结构之打印驱动框架
- 并发编程(CountDownLatch使用)
- SpringBoot 数据验证错误处理
- oracle LPDA,oracle中自动增长列的设置
- SAP Spartacus 服务器端渲染的三种可能情形
- ArrayList的四种初始化方法
- jmeter tps指标在哪里看_性能之路——性能测试连载 (3)-性能指标
- jact变频器故障代码_高淳JACT变频器,艾克特变频器ERR20编码器故障维修烟台市...
- 三菱plc232数据线驱动下载_三菱FX系列PLC没有编程电缆,通过DIY232串口下载程序...
- [C语言] 常量与变量
- 通过Java监听MySQL数据的变化
- Matlab图窗保存为pdf文件
- “一招定制LaTeX论文目录页教程“【新手速进】
- PPT之ppt动画的基本设置
- js通过class获取元素
- DANet(双重注意力融合网络)
- 我的世界(二)之奇点