C++入门经典-类成员的可访问性,继承后的可访问性
1:关键字public、private、protected说明类成员是共有的、私有的,还是保护的。这3个关键字将类划分为3个区域,在public区域的类成员可以在类作用域外被访问,而private区域和protected区域只能在类作用域内被访问。
2:这3种类成员的属性如下:
public属性的成员对外可见,对内可见。
private属性的成员对外不可见,对内可见。
protected属性的成员对外不可见,对内可见,对派生类可见。
3:继承后可访问性。继承方式有public、private、protected这3中继承方式,其说明如下:
(1)共有型派生
共有型派生表示对于基类中的public数据成员和成员函数,在派生类中仍然是public,对于基类中的private数据成员和成员函数,在派生类中仍然是private。
(2)私有型派生
私有型派生表示对于基类中的public、protected数据成员和成员函数,在派生类中可以访问。在派生类中不可以访问基类的private数据成员。
(3)保护性派生
保护型派生表示对于基类中的public、protected数据成员和成员函数,在派生类中均为protected。protected类型在派生类的定义时可以被访问, 用派生类声明的对象不可以访问。protected成员可以被基类的所有派生类使用。这一性质可以沿着继承树无限向下传播。
因为保护型的派生类的内部数据不能被随意修改,该类的维护只有在内部运行,这就起到很好的封装作用。把一个类分为两部分,一部分是公共的,另一部分是保护,保护成员与使用者来说是不可见的,也是不需要了解的,这就减少了类与其他代码的关联程度。类的功能是独立的,它不依赖与应用程序的运行环境,即可以放到这个程序中使用,也可以放到另一个程序中使用。则就能够非常容易的用到一个类替换另一个类。类访问限制的保护机制使人们编制的应用程序更加可靠和易维护。
C++入门经典-类成员的可访问性,继承后的可访问性的更多相关文章
- Python 入门 之 类成员
Python 入门 之 类成员 1.类的私有成员: 私有: 只能自己拥有 以 __ 开头就是私有内容 对于每一个类的成员而言都有两种形式: - 公有成员,在任何地方都能访问 - 私有成员,只有在类的内 ...
- C++继承后的函数访问权限
今天在写代码时发现对继承后的函数访问权限不太清楚,于是自己做了个测试: 1.头文件(test.h) 1 #include <iostream> 2 using namespace std ...
- Kotlin入门(13)类成员的众生相
上一篇文章介绍了类的简单定义及其构造方式,当时为了方便观察演示结果,在示例代码的构造函数中直接调用toast提示方法,但实际开发是不能这么干的.合理的做法是外部访问类的成员属性或者成员方法,从而获得处 ...
- Java+7入门经典 - 6 扩展类与继承 Part 1/2
第6章 扩展类与继承 面向对象编程的一个重要特性: 允许基于已定义的类创建新的类; 6.1 使用已有的类 派生 derivation, 派生类 derived class, 直接子类 direct s ...
- 12、类成员访问修饰符public/private/producted/readonly
1.private 类的私有成员 private 类的私有成员,只能在内部访问,在外部访问不到,无法被继承,我们可以将不需要被外部修改的定义为私有的 私有成员,只能在内部访问,在外部访问不到 priv ...
- C++ 派生类成员的访问属性
派生类成员的访问属性: C++继承方式总共分为以下几种:public.private.protected三种(它们直接影响到派生类的成员.及其对象对基类成员访问的规则).(1)public(公有继承) ...
- 面向对象【day07】:新式类和经典类(八)
本节内容 1.概述 2.类的多继承 3.经典类VS新式类 4.总结 一.概述 在python还支持多继承,但是一般我们很少用,有些语言干脆就不支持多继承,有多继承,就会带来两个概念,经典类和新式类,下 ...
- 【python】-- 类的继承(新式类/经典类)、多态
继承 之前我们说到了类的公有属性和类的私有属性,其实就是类的封装,现在准备随笔的 是继承,是面向对象的第二大特性. 面向对象编程 (OOP) 语言的一个主要功能就是“继承”.继承是指这样一种能力:它可 ...
- 【python】-- 类的多继承、经典类、新式类
继承知识点补充 在python还支持多继承,但是一般我们很少用,有些语言干脆就不支持多继承,有多继承,就会带来两个概念,经典类和新式类. 一.多继承 之前我们都是讲的单继承,那么什么是多继承呢?说白了 ...
随机推荐
- ython实现进程间的通信有Queue,Pipe,Value+Array等,其中Queue实现多个进程间的通信,而Pipe实现两个进程间通信,而Value+Array使用得是共享内存映射文件的方式,所以速度比较快
1.Queue的使用 from multiprocessing import Queue,Process import os,time,random #添加数据函数 def proc_write(qu ...
- php操作 cookie
1,设置cookie <?php setcookie('key'); setcookie('key1','value1'); setcookie(***); setcookie('key4', ...
- MacBook Pro实现共享屏幕(多台mac之间)
1 开启允许所有用户控制屏幕 设置— 共享 2 在另一台MacBook Pro里打开finder窗口,并设置好network显示边栏 3 另一台机器发送请求控制 找 ...
- linux wireless 基础知识 MAC80211 CFG80211
转:http://blog.csdn.net/liuxd3000/article/details/23761663 1. 基本概念 • cfg80211: 用于对无线设备进行配置管理.与Full ...
- JLINK驱动版本更换
https://www.segger.com/downloads/jlink/JLink_Windows_V644b.exe 官网版本 Jlink的版本目录C:\Keil_v5\ARM\Segger\ ...
- Hadoop_07_HDFS的Java API 操作
通过Java API来访问HDFS 1.Windows上配置环境变量 解压Hadoop,然后把Hadoop的根目录配置到HADOOP_HOME环境变量里面 然后把HADOOP_HOME/lib和HAD ...
- Mark点
MARK点是PCB应用于设计中的自动贴片机上的位置识别点,也被称为基准点.直径为1MM.钢网Mark点是电路板贴片加工中PCB印刷锡膏/红胶时的位置识别点.Mark点的选用直接影响钢网的印刷效率,确保 ...
- 浅谈ROW_NUMBER() OVER()函数的使用
语法格式:row_number() over(partition by 分组列 order by 排序列 desc) row_number() over 具有分组排 ...
- css改变背景透明度
透明往往能产生不错的网页视觉效果,先奉上兼容主流浏览器的CSS透明代码:.transparent{filter:alpha(opacity=90); -moz-opacity:0.9; -khtml- ...
- Thinkphp清除缓存文件
Thinkphp的缓存在开发中是非常烦人的,因为有的时候因为缓存的问题而出现的错误是非常难找的.删除缓存更是麻烦,还要去文件夹下删除.如果是linux开发服务器的话还要登陆服务器进行删除.所以这个时候 ...