C++中public,protected,private的区别
C++中public,protected,private个人总结为两种概念,一个宗旨。
两种概念:
概念一:静态的
在C++中一个类的成员的访问级别可分为public,protected,和private。public的访问级别最低,谁都可以访问。
一个类的public成员变量、成员函数,可以通过类的成员函数、类的实例变量进行访问
protected访问级别中等,一个类的protected成员变量、成员函数,无法通过类的实例变量进行访问。但是可以通过类的友元函数、友元类进行访问。
private访问级别最高, 一个类的private成员变量、成员函数,无法通过类的实例变量进行访问。但是可以通过类的友元函数、友元类进行访问。
到这里我们发现似乎protectd和private没有什么太大的区别,但是主要区别在概念二中。
概念二:动态的
关于动态的,也就是动作的意义。其中包含父子继承的关系。也就是自类是如何继承父类的,是public继承,protected继承,还是private继承。
(1)public继承
派生类通过public继承,基类的各种权限不变 。
派生类的成员函数,可以访问基类的public成员、protected成员,但是无法访问基类的private成员。
派生类的实例变量,可以访问基类的public成员,但是无法访问protected、private成员,仿佛基类的成员之间加到了派生类一般。
可以将public继承看成派生类将基类的public,protected成员囊括到派生类,但是不包括private成员。
(2)proteced继承
派生类通过protected继承,基类的public成员在派生类中的权限变成了protected 。protected和private不变。
派生类的成员函数,可以访问基类的public成员、protected成员,但是无法访问基类的private成员。
派生类的实例变量,无法访问基类的任何成员,因为基类的public成员在派生类中变成了protected。
可以将protected继承看成派生类将基类的public,protected成员囊括到派生类,全部作为派生类的protected成员,但是不包括private成员。
private成员是基类内部的隐私,除了友元,所有人员都不得窥探。派生类的友元,都不能访问
(3)private继承
派生类通过private继承,基类的所有成员在派生类中的权限变成了private。
派生类的成员函数,可以访问基类的public成员、protected成员,但是无法访问基类的private成员。
派生类的实例变量,无法访问基类的任何成员,因为基类的所有成员在派生类中变成了private。
可以将private继承看成派生类将基类的public,protected成员囊括到派生类,全部作为派生类的private成员,但是不包括private成员。
private成员是基类内部的隐私,除了友元,所有人员都不得窥探。派生类的友元,都不能访问
具体实例请参考博客protected,public,private区别实例
一个宗旨
一个宗旨,就是,最终我们在解决实际开发问题的时候都要遵照类对象中所有成员的具体访问级别,进行访问,越级访问一定是不可以的。
C++中public,protected,private的区别相关推荐
- C++中public protected private的区别
1. 不考虑继承关系时 本类方法使用 外部使用 private 是 否 protected 是 否 public 是 是 2. 有继承关系时 子类方法使用 外部 private 否 否 pro ...
- C++:C++中public protected private关键字用法
C++:C++中public protected private关键字用法 笔者这里主要针对C++中public protected private关键字做一个较全面的总结.首先public prot ...
- java中public和private的区别
java中public和private的区别 public :public 表明该数据成员.成员函数是对所有用户开放的,所有用户都可以直接进行调用 private :private 表示私有,私有的意 ...
- C++中public protected private关键字
访问权限: public 公共接口 :向外界开放,可通过对象或类名访问 protected 受保护的访问:只向子类开放访问权限 ,不可通过对象访问 private私有 :只有类成员可以访问,外界不可以 ...
- C++中public,protected,private派生类继承问题和访问权限问题
当一个子类从父类继承时,父类的所有成员成为子类的成员,此时对父类成员的访问状态由继承时使用的继承限定符决定. 1.如果子类从父类继承时使用的继承限定符是public,那么 (1)父类的public成员 ...
- public/protected/private简介
public/protected/private简介 #include <IOSTREAM> using namespace std; class A{ public: A(int i_, ...
- Java中public,private,protected以及default的访问权限区别
** Java中public,private,protected以及default的访问权限区别 ** 首先,从public的字面意思上就能够知道public所指的是公共的,从而我们可以知道publi ...
- java中public、private、protected的区别
java中public.private.protected的区别 在java中通过三个关键字public.private.protected在类的内部来进行边界的设定,这些访问指定词(access s ...
- C++类中的访问权限问题---public/protected/private
派生类继承了基类的全部数据成员和除了构造.析构函数之外的全部成员函数,但是这些成员的访问属性在派生的过程中通过继承方式可以来调整. 第一:private,public,protected方法的访问范围 ...
- php protected 的继承,14 PHP 类的继承 [public protected private] parent 构造方法 析构方法 重写 最终类和方法 设计模式...
类的继承 简单理解: 某个类A具有某些特征,另一个类B,也具有A类的所有特征,并且还可能具有自己的更多的一些特征,此时,我们就可以实现:B类使用A的特征信息并继续添加自己的一些特有特征信息. 基本概念 ...
最新文章
- Castle IOC容器快速入门
- LeetCode Reverse Linked List II
- vs2017报错 popen pclose
- 一家成立于100多年前于剑桥的科技创新公司和对我们现在的启示
- html页面forEach用法,!foreach循环用在HTML中,请高手协助
- c语言 课程作业答案,《C语言程序设计A》课程形成性考核作业一参考答案
- linux下定时网站文件备份和数据备份以及删除旧备份标准代码
- ELK应用之Filebeat
- HDU 6191 2017广西邀请赛:Query on A Tree(字典树启发式合并)
- 02 Python元组 字典 数据类型 if while for 迭代
- python 生成空白矩阵_3个用于数据科学的顶级Python库
- rdesktop 访问windows remote desktop
- 计算机常规教学ppt,计算机基本PPT教学.ppt
- puppet单机模型
- 使用PlotNeuralNet绘制自己的网络结构图
- Worthington核心酶——木瓜蛋白酶的特征及相关应用
- 【面试】 CVTE 视源股份 C++ 软件开发 二面
- qtabwidget设置表头_Qt GUI图形图像开发之QT表格控件QTableView,QTableWidget复杂表头(多行表头) 及冻结、固定特定的行的详细方法与实例...
- 基于Git子模块的微前端项目管理和公用组件库方案
- 自定义控件---继承ViewGroup类方式(循序渐进之第2步效果----图片左右拖动+自动回弹效果)
热门文章
- 取出字符串中的数字部分
- 移动测试之-流量测试方案
- 数组中的对象的特征值提取生成新对象实现方法
- CCNP路由实验之八 路由重公布
- 骨牌覆盖问题总结!hihoCoder/ NYOJ-1273宣传墙1151
- 《C++ Primer Plus(第六版)》(30)(第十四章 C++中的代码重用 编程题答案)
- 请阐述调用Activity有哪几种方法,并写出相关的Java代码
- vue在html中写style,vue开发之style(六)(CSS页面布局之样式、背景、文字)
- VUE-用到的样式左右(transform,translate,padding)
- linux date -s_Linux炫技:左手密码生成器,解放右手生产力