C++类域访问方式(public,protected,private)对象访问 , 通过成员函数访问 ,通过友元函数访问

 c++类的用法

yC++ 类的基础用法与详细说明:简单易懂的入门指南-CSDN博客

类的基本概念👇

类是C++中的一个用户定义的数据类型,它可以包含数据(成员变量)和函数(成员函数)。通过类,我们可以创建对象并对其进行操作。

class MyClass {
public:int publicVar;    // 公有变量
protected:int protectedVar; // 受保护变量
private:int privateVar;   // 私有变量
};

 访问修饰符

访问修饰符控制类成员的可访问性,主要有三种

如果想看更仔细的可以看

C++中public,protected,private的区别_c++ protected-CSDN博客文章浏览阅读8k次,点赞7次,收藏53次。C++中关于public、protect、private的访问权限控制(实例)_c++ protectedhttps://blog.csdn.net/ken2232/article/details/129637969?ops_request_misc=%257B%2522request%255Fid%2522%253A%252251FDE802-E44D-4116-8DF3-276EF6A34068%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=51FDE802-E44D-4116-8DF3-276EF6A34068&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-2-129637969-null-null.142^v100^pc_search_result_base8&utm_term=public&spm=1018.2226.3001.4187

3.1️⃣public

  • 说明:公有成员可以被任何其他代码访问。

  • 访问方式:通过对象直接访问。

3.2️⃣protected

  • 说明:受保护成员只能在类内部和派生类中访问。

  • 访问方式:通过派生类的对象或成员函数访问。

3.3️⃣private

  • 说明:私有成员只能在类内部访问,外部无法访问。

  • 访问方式:只能通过类的成员函数进行访问。

访问方式示例

4.1️⃣通过对象访问

int main()
{MyClass obj;obj.publicVar = 10;  // 可以访问cout << obj.publicVar;// obj.protectedVar = 20; // 错误:无法访问// obj.privateVar = 30;  // 错误:无法访问return 0;
}

 4.2️⃣ 通过成员函数访问

class MyClass {
private:int privateVar;public:void setPrivateVar(int value) {privateVar = value; // 可以访问}int getPrivateVar() {return privateVar; // 可以访问}
};

 4.3️⃣ 通过友元函数访问

深度理解友元(Friend)

class MyClass {
private:int privateVar;friend void accessPrivate(MyClass &obj); // 友元函数声明
};void accessPrivate(MyClass &obj) {obj.privateVar = 50; // 友元函数可以访问私有成员
}

复盘💪

来个图-》在理解一下吧

 

C++类的域访问方式主要由访问修饰符控制。了解这些访问方式可以帮助我们设计更安全和可维护的类。通过合理的封装,可以有效保护数据的完整性。

 共勉💪💪

时光不负有心人,星光不问赶路人,时光与星光,共勉之。

加油吧,it人!!! 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/55735.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Jenkins】windows安装步骤

【Jenkins】windows安装步骤 官网使用WAR包方式运行浏览器访问Jenkinswindows-installer安装安装过程问题解决This account either does not hava the privilege to logon as a service or the account was unable to be verified 安装成功修改jenkins.xml启动jenkins访问jenki…

springboot030甘肃非物质文化网站的设计与开发(论文+源码)_kaic

毕 业 设 计&#xff08;论 文&#xff09; 题目&#xff1a;甘肃非物质文化网站设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本甘肃非物质文化…

Java基于SSM框架的教学辅助微信小程序【附源码、文档】

博主介绍&#xff1a;✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3…

vim实用笔记

函数跳转功能 想要使用函数跳转功能需要先安装 ctags sudo apt-get install exuberant-ctags接着&#xff0c;在源文件目录树执行如下命令&#xff1a; ctags -R . 即可在该目录下生成一个tags文件&#xff0c; 这个文件就是所有函数和变量的索引 接着打开用vim打开任一文件…

BinAbsInspector部署、使用与原理分析

文章目录 前言1、概述2、安装与使用2.1、源码安装2.1.1、部署系统依赖组件2.1.1.1、部署基础依赖组件2.1.1.2、部署Ghidra 11.0.32.1.1.2.1、部署JDK 172.1.1.2.2、部署Gradle 7.4.22.1.1.2.3、部署Ghidra 11.0.3 2.1.1.3、部署Z3 4.8.15 2.1.2、使用源码安装系统 2.2、使用方法…

CMake 教程(二)添加库

目录 一、实例一——创建库1、add_library2、target_include_directories()、target_link_libraries()2.1 target_include_directories()2.2 target_link_libraries() 3、实例操作 二、实例二——添加选项1、option()2、实例操作 在第一节 CMake 教程&#xff08;一&#xff09…

学习笔记(202410)

课程&#xff1a;Generative AI for Software Development 链接&#xff1a;吴恩达同步最新AI专业课&#xff0c;第54讲&#xff1a;用人工智能做软件开发--Generative AI for Software Development_哔哩哔哩_bilibili 时间&#xff1a;2024-10-12 至 概述&#xff1a;使用C…

ES-入门-javaApi-文档-新增-删除

新增指定索引的文档数据的代码如下&#xff1a; package com.atgulgu.es.test;import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.http.HttpHost; import org.elasticsearch.action.index.IndexRequest; import org.elasticsearch.action.index.IndexRe…

学习笔记——交换——STP(生成树)简介

一、技术背景 1、生成树技术背景 交换机单线路组网&#xff0c;存在单点故障(上左图)&#xff0c;上行线路及设备都不具备冗余性&#xff0c;一旦链路或上行设备发生故障&#xff0c;业务将会中断。 为了使得网络更加健壮、更具有冗余性&#xff0c;将拓扑修改为(上右图)接入…

网络学习笔记

一、网络的结构与功能 网络的鲁棒性与抗毁性 如果在移走少量节点后网络中的绝大部分节点仍然是连通的&#xff0c;那么就该网络的连通性对节点故障具有鲁棒性 网络上的动力学 动力系统&#xff1a;自旋、振子或混沌的同步、可激发系统 传播过程&#xff1a;信息传播与拥堵…

ChatGPT01-preivew体验报告:内置思维链和多个llm组合出的COT有啥区别呢?丹田与练气+中学生物理奥赛题测试,名不虚传还是名副其实?

一个月前&#xff0c;o1发布的时候&#xff0c;我写了篇文章介绍 逻辑推理能力堪比博士生&#xff0c;OpenAI发布全新AI模型系列&#xff1a; o1 - 大模型或许进入新阶段&#xff0c;还翻译了官方的介绍 解密OpenAI o1是如何让LLMs获得逻辑推理能力的 - CoT * RL&#xff0c;也…

代码复现(五):GCPANet

文章目录 net.py1.class Bottleneck&#xff1a;残差块2.class ResNet&#xff1a;特征提取3.class SRM&#xff1a;SR模块4.class FAM&#xff1a;FIA模块5.class CA&#xff1a;GCF模块6.class SA&#xff1a;HA模块7.class GCPANet&#xff1a;网络架构 train.pytest.py 论文…

快速上手C语言【下】(非常详细!!!)

目录 1. 指针 1.1 指针是什么 1.2 指针类型 1.2.1 指针-整数 1.2.2 指针解引用 1.3 const修饰 1.4 字符指针 1.5 指针-指针 1.6 二级指针 2. 数组 2.1 定义和初始化 2.2 下标引用操作符[ ] 2.3 二维数组 2.4 终极测试 3. 函数 3.1 声明和定义 3.2 传值调用…

【Python爬虫实战】深入解析BeautifulSoup4的强大功能与用法

&#x1f308;个人主页&#xff1a;https://blog.csdn.net/2401_86688088?typeblog &#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/2401_86688088/category_12797772.html 目录 前言 一、BeautifulSoup4的介绍和安装 &#xff08;一&#xff09;基本功能和特点…

Servlet[springmvc]的Servlet.init()引发异常

报错&#xff1a; 原因之一&#xff1a; web.xml配置文件中监听器导入依赖项错误

新颖的 setTimeout() 替代方案

在前端开发中&#xff0c;长时间运行的JavaScript任务一直是一个棘手的问题。它们会导致页面无响应&#xff0c;影响用户体验。传统上&#xff0c;开发者使用setTimeout()来分割长任务&#xff0c;但这种方法存在明显的缺陷。最近&#xff0c;Chrome 129引入了一种新的、更高效…

如何搭建激光稳频的闭环控制系统

半导体激光器稳频简介 简介 窄线宽连续激光器广泛应用于原子、分子以及物理光学领域&#xff0c;在精密测量设备中有着举足轻重的作用。那些并不带有波长稳频技术的激光器&#xff0c;其短时间稳定性不适合很多应用。本文档将会给您介绍一种简单而强大的主动稳频技术&#xff0…

不收费的数据恢复工具有哪些好用?快来看这五款:

大家好&#xff0c;今天我来跟大家分享一下使用不收费数据恢复软件的一些心得和体验&#xff1b;数据丢失是一件非常让人头疼的事情&#xff0c;尤其是对于那些重要文件来说&#xff1b;幸好&#xff0c;现在市面上有不少不收费的数据恢复软件可以帮助我们找回丢失的数据。接下…

【C++笔试强训】如何成为算法糕手Day11

学习编程就得循环渐进&#xff0c;扎实基础&#xff0c;勿在浮沙筑高台 循环渐进Forward-CSDN博客 目录 游游的水果大礼包 思路 代码实现&#xff1a; 买卖股票的最好时机(二) 思路&#xff1a; 代码实现&#xff1a; 倒置字符串 思路&#xff1a; 代码实现&#xf…

101、QT摄像头录制视频问题

视频和音频录制类QMediaRecorder QMediaRecorder 通过摄像头和音频输入设备进行录像。 注意: 使用Qt多媒体模块的摄像头相关类无法在Windows平台上进行视频录制&#xff0c;只能进行静态图片抓取但是在Linux平台上可以实现静态图片抓取和视频录制。 Qt多媒体模块的功能实现是依…