类的访问权限-public、private、protected
访问权限
protected(保护)访问权限
为什么要使用protected访问权限?
子类的成员函数中,不能直接访问父类的private成员,已经这些成员已经被继承下来了,但是却不能访问。
只有通过父类的public函数来间接访问,不是很方便。
比如,刚才Demo中Father类中的name和age成员。
class Father {public:Father() {name = "无名";age = 0;}Father(const char* name, int age) {this->name = name;this->age = age;}string get_name()const {return name;}int get_age()const {return age;}private:string name;int age;};
解决方案:
把name和age定义为protected访问访问权限。
protected:string name;int age;
效果:
Son类的成员函数中,可以直接访问它的父类的protected成员。
但是在外部,别人又不能直接通过Son对象来访问这些成员。
//定义一个儿子类
class Son : public Father {public:Son(const char* name, int age) {this->name = name;this->age = age;}};
一个类, 如果希望, 它的成员, 可以被自己的子类(派生类)直接访问,
但是, 又不想被外部访问那么就可以把这些成员, 定义为 protected访问权限!!!
访问权限总结:
public
外部可以直接访问.
可以通过对象来访问这个成员
Fahter wjl(“王健林”, 65);
wjl.get_name();
private
外部不可以访问
自己的成员函数内, 可以访问
Fahter wjl(“王健林”, 65);
wjl.name; // 错误!!!
Father内的所有成员函数内, 可以直接访问name
protected
protected和private非常相似
和private的唯一区别:
protecte: 子类的成员函数中可以直接访问
private: 子类的成员函数中不可以访问
类的访问权限-public、private、protected相关推荐
- java访问权限 public private protected
作者:yan 1. Java中的访问控制 表1-1 可见/访问性 在同一类中 同一包中 不同包中 同一包子类中 不同包子类中 public yes yes yes yes yes ...
- Java中的四种访问权限:public、protected、包访问、private
所谓访问权限,指的就是本类中的成员变量.成员方法对其他类的可见性 试想一想,当我们修改一个非常庞大的项目时,如果所有变量和方法都是公共权限,那么后端中任何类都有权限去修改它的变量和方法,很有可能修改后 ...
- public,private,protected访问权限在Java,C++中的解析
Java中: Java中的访问权限有public,private,protected和默认的包访问权限,如果类中的属性方法没有显示的指明访问权限,则具有包访问权限,我喜欢称它为packeged权限,很 ...
- java面试题三十 public,private,protected,default访问权限
1 考题描述: 2 答案 BD 3解析 B. no modifer既为default也就是friendly 3.1 public,private,protected,default访问权限图 3.2证 ...
- C# 成员默认访问权限(public、private、protected、internal)
来源 https://www.cnblogs.com/yezongjie/p/20181121AccessRights.html 1.C#五个修饰符的权限 修饰符 级别 适用成员 解释 public ...
- 深入浅出OOP(五): C#访问修饰符(Public/Private/Protected/Internal/Sealed/Constants)
访问修饰符(或者叫访问控制符)是面向对象语言的特性之一,用于对类.类成员函数.类成员变量进行访问控制.同时,访问控制符也是语法保留关键字,用于封装组件. Public, Private, Protec ...
- C++ 类访问控制public/private/protected探讨
摘要:本文是从饮水思源BBS C/C++版上一篇帖子引发的思考.当时看到帖子,突然觉得平时见惯了的,在这里似乎变得陌生了,究竟访问控制符怎样起作用,怎样使用,该怎样理解,本文试图给出讨论. 原帖如下 ...
- C++学习 十五、类继承(1)基类,派生类,访问权限,protected
C++学习 十五.类继承(1)基类,派生类 前言 类继承 类的关系与继承 基类, 派生类 基类 派生类 构造函数,析构函数 文件位置 访问权限 protected 后记 前言 本篇开始学习C++类的继 ...
- 类中的关键字public、protected、private究竟是什么意思?
类中的关键字public.protected.private究竟是什么意思? 这三个关键字用来修饰类中的成员的有效域,即成员在哪个域内是可被调用的.下面我们来仔细说明这句话. 所谓"类中的成 ...
最新文章
- mysql查询时强制区分大小写
- 根据当前时间如何找到上月的第一天和最后一天?
- 转载:比Python快100倍,利用spaCy和Cython实现高速NLP项目
- 初作学术论文存在的文献梳理和引文注释问题
- java听课笔记(十五)之 网络编程
- mac搭建PHP开发环境
- 给 asp.net core 写一个简单的健康检查
- 类型与通用语言运行时:System.Object
- 《3ds Max疯狂设计学院》——1.7节学习3ds Max的基本流程,必须要在最开始就了解...
- 美国音乐学院计算机音乐专业排名2015年,美国音乐学院排名
- No matter what,just do not give up。
- kafka sparksteaming
- 移动端电影院社交来啦 约上ta看一场电影
- openwrt软路由实现ipv6 nat 上网配置
- centos php 开启libgdgd_linux gd
- Linux(一):初识ARM Linux
- 解决redis 6379本地可以访问,外网却不行
- P1460 [USACO2.1]健康的荷斯坦奶牛 Healthy Holsteins
- Python.对鸢尾花数据集进行可视化操作,对数据分析
- 推荐系统的召回算法(一)—— 协同过滤法(基于用户)