理解C++访问控制(private,protected,public)

c++派生类的访问控制 1继承概念 面向对象程序设计有4个主要特点:抽象、封装、继承和多态性。我们已经讲解了类和对象,了解了面向对象程序设计的两个重要特征一数据抽象与封装,已经能够设计出基于对象的程序,这是面向对象程序设计的基础。 要较好地进行面向对象程序设计,还必须了解面向对象程序设计另外两个重要特 征——继承性和多态性。本章主要介绍有关继承的知识,多态性将在后续章节中讲解。 继承性是面向对象程序设计最重要的特征,可以说,如果没有掌握继承性,就等于没有掌握类和对象的精华,就是没有掌握面向对象程序设计的真谛。 1.1类之间的关系 阅读详情

1. private

         用于限制类的成员的时候,这些成员(变量或函数)只能被该类的成员函数(私有或公有函数,不限制,这一点与protected相同)以及被标识为friend的函数或类函数访问。这个私有是严格私有(只能本类,任何形式的派生类成员都不能访问)。

    而在派生类时使用privite 限制,是指将基类所有公有的成员(变量或函数)在派生类中变成privite (包括protected修饰的成员也变成了privite)(即一把就全变成了私有了,够狠的!)。

2. protected

         用于限制类的成员的时候,作用同privite。

    protected的作用体现在派生的时候,它既希望这些成员被派生类成员函数访问,不要像privite那样限制得太死,但又不希望外部(单独函数或其它类的函数)通过派生类的对象直接访问。

         基类中用 protected修饰的成员,则分情况:如果派生类时使用protected修饰,则其属性不变,仍然是protected成员,如果子子孙孙都使用protected修饰,则它永远保持不变;如果派生时用privite修饰 ,则该字段在本类中变成私有了,不能再被继续派生的类访问;而public不影响原来的修饰,原来是啥还是啥,但不能把原来的privite和 protected修改为public。

3. public

          public最简单,没有任何限制,原来是啥还是啥。

4.  易混淆点

         最容易混淆的是派生类时分别加 privite,protected和 public 时容易搞不清,其实先丢开 public ,因为它什么也不影响,容易混淆的是 privite和 protected 。

我们可以认为,privite一把将所有基类成员改为privite(实际上改的是protected和public成员)。protected一把将所有基类成员改为protected(当然它不能将private也改了)。

QT编程系列1--QT学习前需知 本周学习了一些QT编程方面的知识,学写了几个程序,这里把记录下来。一方面对前面学习的知识做一个总结,便于以后复习、再学习和应用;另一方面也和大家做个交流,有不足的地方请各位看官多指点。   首先是做一些学习之前的交代:一,学习QT需要哪些基础;二,学习QT有哪些用途,QT较其他的开发工具有哪些特点;三,学习QT的思路。 阅读详情

相关推荐

工业视觉中HDR算法的动态范围优化与Debevec/Mertens方法实践

本文深入探讨了工业视觉中HDR(高动态范围)成像技术,重点解析了Debevec和Mertens两种核心算法。针对工业场景中因动态范围不足导致的过曝与欠曝问题,文章详细对比了两种方法的原理、实现步骤、参数调优及适用场景,为工程师在静态检测与高速产线等不同需求下,选择并实践HDR算法提供了清晰的指导。

weixin_29099217的博客 193

每日一问:深入理解C++中的访问控制机制——private、protected和public

在C++中,访问控制机制是面向对象编程的重要组成部分,它通过封装性提高了代码的安全性和可维护性。C++提供了三种主要的访问控制符——`private`(私有)、`protected`(受保护)和`public`(公共),它们分别用于控制类成员的可访问范围。本文将详细探讨这些访问控制符的使用场景、各自的访问范围,并通过代码示例帮助理解它们的实际应用。

upgrador的博客 1529

【电磁场计算】磁偶极子在外磁场中的受力

最近在总结电磁场计算公式的时候发现,关于磁偶极子受力的计算公式,在不同文献中的说明有点出入,在此特地写一篇博客澄清一下。

sky4403的博客 7463

C++中public、private、protected浅析

C++类中自身成员属性:public、private、protected,这三者主要是控制类自身的成员的访问属性(在什么时候可见,什么时候不可见) public:类的公有成员,在类内和类外均可访问 private:类的保护成员,类内可以,类外不可访问(继承中是可以被子类访问的,private成员不能被子类继承) private:类的私有成员,类...

qq_31542849的博客 461

Dinic算法的复杂度分析及证明

一般图 复杂度主要取决于dfs增广的过程。 将dfs部分的复杂度分成两部分来分析:1)修改增广路上边的流量。至多会增广mmm次,一条增广路的长度至多是nnn,所以这一部分的复杂度是O(nm)O(nm)O(nm)。2)dfs遍历时找增广路失败时经过的边。由于一旦从某条边出发找最短路失败了,我们就不会再走那条边(当前弧优化),所以这一部分的复杂度是O(m)O(m)O(m)的。故而dfs增广的复杂度是O...

这个博客已经搬到了:zhongyuwei.github.io 4390

基于USB总线的虚拟摄像头(UVC)原理简介

前面文章中我们分析了虚拟声卡的实现,在文章中我们展示了创建一个虚拟麦克风和虚拟扬声器的技术原理。完成了音频的虚拟化之后,这里就要谈论一下对于视频的虚拟化了——虚拟摄像头的实现。关于虚拟麦克风和虚拟扬声器的实现,可以参考。虚拟摄像头应用也是非常普遍的,例如云桌面远程摄像头的实现,直播技术。目前对于虚拟摄像头有三种实现方式:DirectShow虚拟摄像头,这个是一种比较古老的技术;在新版本应用中,该项技术基本失效了,尤其是UWP框架程序,DirectShow虚拟摄像头就失效了。

tianxilink的博客 5415

谈谈private public protected

1.  出现在类成员的声明中,其作用分别是:public member :  能在任何地方被任何人访问,能够在类外访问private member : 只能被类的成员函数和友元访问,只能在类内访问protected member : 能被类的成员函数和友元 以及 derived class 成员函数和友元访问,能在类内访问,但能被派生类访问  2. 

791

景区导览系统|景区展馆智能导览|小程序导览|电子导览手绘地图制作

AI 数字导游就像一位随时陪伴在游客身边的专属导游,能够根据游客的提问,迅速、准确地提供详细的景点介绍、历史文化知识讲解,甚至能根据游客的兴趣爱好和实时位置,为其智能规划个性化的游览路线。在手绘地图中可以显示景区中的景点信息、景点和景点之间的路径,也可以显示景区的关键地点信息:景区全景、植物景观、河流、道路、地形面貌、卫生间等公共设施~无论是景区还是展馆,道可云AI智能导览系统都能通过丰富的功能、先进的技术,为游客打造便捷、智能、个性化的游览体验,成为文旅行业数字化转型的得力助手。

道可云 1142

深入理解C++中public、protected及private用法

这篇文章主要介绍了C++中public、protected及private用法,对于C++面向对象程序设计来说是非常重要的概念,需要的朋友可以参考下 初学C++的朋友经常在类中看到public,protected,private以及它们在继承中表示的一些访问范围,很容易搞糊涂。今天本文就来十分分析一下C++中public、protected及private用法。相信对于大家深入...

weixin_30376083的博客 78

2024最新超详细无痛安装PyTorch,包括下载地址、环境配置与各种避坑指南

PyTorch更新很快,2024最新下载安装经验贴,包括anaconda+CUDA+cuDNN+PyTorch四部分的下载和安装。文章详细介绍了下载地址、环境配置、虚拟环境建立的问题,还温馨提示了各种闭坑指南。有需要的友友快过来康康!

qq_43596278的博客 11万+

CST实战:变容二极管电容曲线提取全流程(附S参数设置技巧)

本文详细介绍了在CST Studio Suite中提取变容二极管电容-电压(C-V)曲线的完整实战流程。重点解析了S参数仿真的核心原理、DCFEED模块的正确配置、参数扫描的设置技巧,并探讨了集成SPICE模型进行精确仿真的方法,帮助射频工程师高效、准确地获取器件关键特性。

weixin_29237635的博客 529

C++访问控制 public、privates和protected说明符

C++语言引进三个关键字,用于在结构中设置边界:public、private和protected。它们的用法和含义从字面就能理解。这些访问说明符只在结构声明中,它们可以改变跟在它们之后的所有声明的边界。 public意味着在其后声明的所有成员可以被所有人访问。(public成员就如同一般的struct成员)比如,下面的struct声明是相同的: struct A { int i; char j...

Veni的博客 379

Vscode远程免密连接Linux虚拟机,并配置C/C++运行环境

目前想要深入学习在Linux,也为了方便编写C/C++程序。Linux的环境里一般自带有c++的编译环境,如果没有安装gcc和g++等编译器也比较便利。但是在虚拟机里用vim编写C++程序又不得劲,因此打算使用vscode远程连接Linux虚拟机进行学习。为了防止自己以后还要再配置,重复踩坑,因此写下这篇博客用做记录。环境:windows11、VMware17、rocky linux9.1 ( 开源的CentOS9 )

m0_56779872的博客 8676

c语言中的protect_概述C++中的 public protected private friend关键字的用法

一个C++类中的变量如果如下关键字作为修饰符.1. public: 程序的任何地方都可以访问.2 protected: 只有类本身及其派生类和其友元函数,友元类可以访问.3 private: 只有类本身及其友元函数,友元类可以访问.4 friend: 用于定义友元函数友元类. 在类里声明的一个普通函数,在前面加上friend修饰符,这个函数就可以访问该类的一切成员,包括private成员.下面在看...

weixin_29189377的博客 2455

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

private和public的问题

private和public的作用是让编译器帮你检查某些模块是否使用了他没权限使用的模块,也就是生成可执行代码的时候做权限检查。比如,公司里各个部门有自己私有的信息,财务部可以看所有员工工资,而销售部不可以,普通员工也不可以。 可不可以访问都是认为规定的,而且在写代码的时候程序是不会执行的,因此需要在生成代码的时候做一些检查,就像语法错误在编译的时候被检查出来一样,因为人规定了代码该如何写。访问控

haying3344的博客 526

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

理解public,protected 以及 private

经常看到在类中看到public,protected,private以及它们在继承中表示的一些访问范围,很容易搞糊涂。我们首先要明白下面几点。 1.类的一个特征就是封装,public和private作用就是实现这一目的。所以: 用户代码(类外)可以访问public成员而不能访问private成员;private成员只能由类成员(类内)和友元访问。 2.类的另一个特征就是继承,protected...

weixin_30341745的博客 71

C++中关于public、protect、private的访问权限控制

转载:C++中关于public、protect、private的访问权限控制 https://blog.youkuaiyun.com/ycf74514/article/details/49053041 #include “pch.h” #include #include using namespace std; class AccessTest { friend void Atest();//声明友元函数和...

weixin_42843345的博客 507

(转)深入理解C++中public、protected及private用法

初学C++的朋友经常在类中看到public,protected,private以及它们在继承中表示的一些访问范围,很容易搞糊涂。今天本文就来十分分析一下C++中public、protected及private用法。相信对于大家深入掌握C++程序设计会有很大的帮助。这里我们首先要明白下面几点。1.类的一个特征就是封装,public和private作用就是实现这一...

weixin_33691700的博客 143

C++中public,protected,private访问

总结:1. protected和private的区别在于 ,protected的访问标号限制,能够被派生类的成员函数访问,而private不能2. protected和publice的区别在于,protected的访问限制,使其不能被基类的对象访问。 -----------------------------------------------------第一:private, public, ...

weixin_34032779的博客 71

C++中public,protected,private的区别

原文http://www.cnblogs.com/davy2013/p/3147172.html 第一:private, public, protected 访问标号的访问范围。 private: 只能由1.该类中的函数、2.其友元函数访问。 不能被任何其他访问,该类的对象也不能访问。 protected: 可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访

#ifndefine maxwit #define maxwit...#endif 944

菜鸟森林:C++之private、protected 、public浅辨析

嗨!大家好,我是森林中的菜鸟Laried^^^^^^^^^^^^^^^^^^^^^^^^^。学C++近半年了,C++的语法知识真的很磨人,最近这两天在研究private、protected 、public这三者的区别。下面是我的学习笔记,有错误请指出觉得不错点个赞哦! 在实际开发中,有些类它们具有相同的属性和行为,引入继承机制可以实现代码的可重用性。 数据成员的public , protected , private 的区别 注: 【1】友元可以通过对象访问类中的私和成员。但他破坏类的封装性和隐藏

laried的博客 426

C++实操 - 访问控制

C++的基本操作对象是类和对象,类是模板,对象是类的实例。 在类中,声明了private、protected和public,用来区分不同的访问级别。 对于类内部访问的级别来说,public一般指接口访问,private为实现访问。而Protected为可继承的实现。 private是私有的成员变量或成员函数,只能本类或对象调用。 protected表示继承级别的访问,用来表示子类可以调用基类的成员变量或函数。 public是全局访问权限,类的内部外部都可以访问。 关于private的访问..

guoqx的专栏 1122

C++ 类访问控制(public/protected/private)

第一:private, public, protected 访问标号的访问范围。 private:只能由1.该类中的函数、2.其友元函数访问。 不能被任何其他访问,该类的对象也不能访问。 protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。 但不能被该类的对象访问。 public:可以被1.该类中的函数、2.子类的函数、3.其友

菲尼克斯罗的学习笔记 242

C++中 public,protected, private 访问标号小结

这篇总结的挺干练C++中 public,protected, private 访问标号小结第一:private, public, protected 访问标号的访问范围。private:只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问,该类的对象也不能访问。protected:可以被1.该类中的函数、2.

Tiger Lee的专栏 474

C++之public、private、protected(一)派生类继承与访问权限详解

第一:private, public, protected 访问标号的访问范围。 private:只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问,该类的对象也不能访问。 protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。但不能被该类的对象访问。 public:可以被1.该类中的函数、2.子类的函数、3.其友元函数访问,也可以由4.

Bruce_0712的博客 1230

public private protect的区别

特点:基类的 public 成员在派生类中保持 public,基类的 protected 成员在派生类中保持 protected,而基类的 private 成员不可访问。这是最常用的继承方式,符合“is-a”关系的设计原则。特点:基类的所有成员(无论是 public 还是 protected)在派生类中都变为 private,基类的 private 成员仍然不可访问。特点:基类的 public 和 protected 成员在派生类中都变为 protected,基类的 private 成员仍然不可访问。

muyuchengfeng_的博客 969
上一篇: 理解C++友元(友函数,另一个类的函数,单独函数)
下一篇: 理解C++类成员指针(指向类成员的指针)
ComputerInBook
博客等级 码龄19年 1168粉丝 464原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值