C++作用域限定符:private/public与protected
C++的作用域限定符其实涉及到了C++特性中的封装和继承。
public/private:涉及类的封装特性。对于一个类需要对外展示的部分,我们可以将其声明为public,对于不希望对外展示的,我们将其声明为private。
protected:涉及类的继承特性。对于一个子类想拥有父类的某个功能,但是父类又不希望子类对外展示,这时候就可以将成员声明为protected属性,只可以父类和子类使用。
注:本文中所说的类以及父类、子类均是抽象类的概念,不是类对象。
public
类的实现就是对外提供某些功能,外部通过调用类提供的某些接口引入类的功能。这就要求类成员必须声明为public,从而才能被外部所调用,这是类对外展示的部分。
而对外展示的功能函数有时候也依赖本类中其他的函数实现,但是被依赖的这部分我们只希望在类内部使用,不希望外部看到,这就涉及到了private特性。
private
定义为private属性的类成员,只能被本类调用,这部分成员在本类中是“隐藏”成员,即为了实现其他接口,“自己情愿退居幕后”,不向外展示。
proteced
其实protected是为继承而作的。类有继承的属性,如果一个父类有某个功能,而这个功能又不希望被外部看到,但是子类确实也需要这个功能,这个时候怎么办呢?此时就可以将父类的这个功能函数定义成protected属性的,子类继承后,该函数只能在父类和子类内部可以使用,外部无法使用。也就保存了该功能在父类中的初衷。
当然了上面说的都是作用域限定符在一个类内部的说明,private/public/protected也可以用于继承,其实到底要使用哪种继承特性,可以参考上面总结的作用域限定符在一个类中的作用,因为归根结底,类继承后就是一个类。
C++作用域限定符:private/public与protected的更多相关文章
- 浅析java修饰符之public default protected private static final abstract
浅析java修饰符之public default protected private static final abstract 一 修饰符的作用:用来定义类.方法或者变量,通常放在语句的最前端 ...
- JAVA 中的权限访问修饰符(public,protected,default,private )
JAVA中有四个权限访问修饰符:public,protected,default,private 注意:这里讲的是对类中属性和方法的访问权限,并不是类的访问权限 1.default:包访问权限 如果什 ...
- php作用域限定符
双冒号::被认为是作用域限定操作符,用来指定类中不同的作用域级别.::左边表示的是作用域,右边表示的是访问的成员. 系统定义了两个作用域,self和parent.self表示当前类的作用域,在类之外的 ...
- C++ 类学习笔记 :: 作用域限定符
类与封装的概念: 1.类: 类的实现.类的使用. 当使用类的时候,不需要关心实现的细节.当创建类的时候,才需要考虑到内部具体的实现细节. 2.类的封装: 成员变量,C++用于表示属性的变量. 成员函数 ...
- Java中类成员访问权限修饰符(public、protected、default、private)
1.public(公共的): 任何类都可以进行访问(最不严格). 2.protected(保护的): 同一包内的类以及其子类可以进行访问. 3.default(缺省的): 类中不加任何访问权限限定的成 ...
- 权限修饰符(public、protected、default、private)权限验证
一.测试方法 在authorityTest包中建类AuthorityValidate package authorityTest; public class AuthorityValidate { p ...
- (:: operator)作用域限定符的几种使用
一.(:: operator)解决局部变量与全局变量重名问题 ; int main() { ; cout<<var<<endl;//local variable cout< ...
- C++ public、protected、private 继承方式的区别
访问修饰符 public.protected.private,无论是修饰类内成员(变量.函数),还是修饰继承方式,本质上实现的都是可见性的控制. Difference between private, ...
- JAVA修饰符类型(public,protected,private,friendly)
转自:http://www.cnblogs.com/webapplee/p/3771708.html JAVA修饰符类型(public,protected,private,friendly) publ ...
随机推荐
- 关于缓存的一些重要概念(Redis 前置菜)
1. 缓存的基本思想 很多朋友,只知道缓存可以提高系统性能以及减少请求相应时间,但是,不太清楚缓存的本质思想是什么. 缓存的基本思想其实很简单,就是我们非常熟悉的空间换时间.不要把缓存想的太高大上,虽 ...
- PyQt(Python+Qt)学习随笔:部件的大小策略sizePolicy的含义
在Qt Designer中的每个部件,除了设置部件的位置(geometry)之外,还可以指定部件的大小策略sizePolicy.部件的sizePolicy用于说明部件在布局管理中的缩放方式,当部件没有 ...
- 虚拟机(centos7)网络配置
修改网络配置(ip等) VWware右上角,选择编辑---虚拟网络编辑器 可以看到子网ip是 192.168.1.0,那么我们分配ip地址就可以从此ip段开始. 再点击NAT设置 这里的网关我们稍后会 ...
- ORCHARD WOODEN GATE
狗: 代码小盒子 爆零秘籍 备忘录 任务计划 核心算法: 搜索/枚举/贪心 dp 分治 数据结构: 并查集 ST表 堆 线段树 树状数组 分块 树套树 平衡树 LCT 莫队 字符串: 哈希 Trie ...
- NPM相关知识点
1.Windows环境变量的配置 npm config set prefix "D:\Program Files\nodejs\node_global" npm config se ...
- Jmeter(6)命令行执行
Jmeter执行方式有2种:GUI和非GUI模式 GUI:在Windows电脑上运行,图形化界面,可直接查看测试结果,但是消耗压力机资源较高 非GUI:通过命令行执行,无图形化界面,不方便查看测试结果 ...
- 如何用Python 制作词云-对1000首古诗做词云分析
公号:码农充电站pro 主页:https://codeshellme.github.io 今天来介绍一下如何使用 Python 制作词云. 词云又叫文字云,它可以统计文本中频率较高的词,并将这些词可视 ...
- [日常摸鱼]HDU1348Wall-凸包
我学习进度慢得连我自己都怕- 题意:大概给$n$个点搞出它的凸包,然后还要在凸包外弄一层厚为$l$的东西,求这个东西的周长 我个滞涨居然把pi开成了int-搞了一个晚上才看见 凸包直接求,因为是凸多边 ...
- BloomFilter中保存的数据量
结果 /** * @author WeiJiQian * BF_CARDINAL_THRESHOLD BF_FALSE_POSITIVE_RATE 保存的数据量 * 100,0000 0.01 391 ...
- 仵航说 SpringBoot项目配置Log日志服务-仵老大
今天领导让我配置一个log日志服务,我哪里见过哟,然后就去百度了,结果挨个试下去,找到了一个能用的,分享给大家 大致四个地方 分别是 1.pom文件需要引入依赖 2.创建一个TestLog类 3.在y ...