C++ 访问修饰符

文章目录

  • 概述
    • public
    • private
    • protected
  • 示例代码
  • 小结

概述

C++中的访问修饰符用于控制类成员(包括数据成员,成员函数)的可见性和可访问性。 C++中有三种访问级别:public, private, protected。下面一个一个说下。

public

  • public 成员可以被任何访问类的对象或引用的代码访问。它们是类与外部世界交互的主要方式。
  • 任何继承自该类的子类也可以访问public成员。

private

  • private成员只能在类的内部访问,即它们不能被类的外部代码访问,也不能被任何子类访问。
  • private成员是封装的一部分,它们隐藏了类的实现细节,只允许通过类的公共接口进行操作。

protected

  • protected成员可以被类的内部访问,也可以被继承类访问,但不能被类的外部访问。
  • 这允许继承类访问基类的protected成员,但保持了对外部代码的封装。

示例代码


访问修饰符的默认行为取决于类本身是否被声明为public、private或protected。如果一个类没有显式指定访问修饰符,它默认是private的,这意味着你不能从类的外部访问它的成员。

下面来个简单的示例吧,代码如下:

class Base {
public:void publicFunc() {} // 公共成员函数private:void privateFunc() {} // 私有成员函数protected:void protectedFunc() {} // 受保护的成员函数
};class Derived : public Base {
public:void test() {publicFunc(); // 可以访问基类的公共成员protectedFunc(); // 可以访问基类的受保护的成员// privateFunc(); // 错误:不能访问基类的私有成员}
};int main() {Base b;b.publicFunc(); // 可以访问// b.privateFunc(); // 错误:不能访问// b.protectedFunc(); // 错误:不能访问Derived d;d.publicFunc(); // 可以访问d.protectedFunc(); // 可以访问// d.privateFunc(); // 错误:不能访问
}

小结

这篇主要写的是访问修饰符,public,private,protected,以及它们的使用情况。当然,还是要看具体的实际情况的。感兴趣,可以一起来学习学习。OK,这篇结束。翻篇!

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

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

相关文章

Appium Inspector介绍和使用

一、什么是Appium Inspector 官方介绍:Overview - Appium Inspector 检查器的主要目的是提供应用程序页面源代码的检查功能。它主要用于测试自动化开发,但也可用于应用程序开发 - 或者如果只是想查看应用程序的页面源代码! 从本质上讲&…

API Object设计模式

API测试面临的问题 API测试由于编写简单,以及较高的稳定性,许多公司都以不同工具和框架维护API自动化测试。我们基于seldom框架也积累了几千条自动化用例。 •简单的用例 import seldomclass TestRequest(seldom.TestCase):def test_post_method(self…

k8s (Kubernetes) 之helm

Helm 是 Kubernetes 的包管理工具,用于简化和自动化应用程序在 Kubernetes 上的部署、管理和配置。Helm 通过 Chart(类似于 Linux 中的包管理)来打包 Kubernetes 应用程序,使得应用程序的管理变得更加便捷和高效。 概述 Helm 是…

vue3项目图片压缩+rem+自动重启等plugin使用与打包配置

一、Svg配置 每次引入一张 SVG 图片都需要写一次相对路径,并且对 SVG 图片进行压缩优化也不够方便。 vite-svg-loader插件加载SVG文件作为Vue组件,使用SVGO进行优化。 插件网站https://www.npmjs.com/package/vite-svg-loader 1. 安装 pnpm i vite-svg…

系统架构设计师考试大纲学习笔记

1. 考试说明 1.1 考试目标 通过本考试的合格人员应能够 根据系统需求规格说明书,结合应用领域和技术发展的实际情况,考虑有关约束条件,设计正确、合理的软件架构,确保系统架构具有良好的特性;能够对项目的系统架构进…

步进电机(STM32+28BYJ-48)

一、简介 步进电动机(stepping motor)把电脉冲信号变换成角位移以控制转子转动的执行机构。在自动控制装置中作为执行器。每输入一个脉冲信号,步进电动机前进一步,故又称脉冲电动机。步进电动机多用于数字式计算机的外部设备&…

DOM 中包含哪些重要方法

1. alert 带有指定消息的警告框 alert("hello world"); 2. confirm 带有确定和取消的对话框,点击确定返回 true,点击取消返回 false confirm("你好吗"); 3. prompt 显示一个提示框,允许用户输入文本,点击…

CST电磁仿真创建独特的天线

在日益无线化的世界中,一切都取决于天线,从我们用于医疗保健、工作和娱乐的智能设备到将我们从一个地方带到另一个地方的车辆。它们如此融入我们的日常生活,以至于我们大多数人甚至没有想到它们——即使想到了,我们也会想象屋顶上…

ubnutu20.04-vscode安装leetcode插件流程

1.在vscode插件商城选择安装leetcode 2.安装node.js 官网下载一个版本安装流程: ①tar -xvf node-v14.18.0-linux-x64.tar.xz ①sudo ln -s /app/software/nodejs/bin/npm /usr/local/bin/ ②ln -s /app/software/nodejs/bin/node /usr/local/bin/ 查看版本&…

CentOS 6.4环境 升级到OpenSSH9.2p1

系统环境: [rootlocalhost]# cat /etc/centos-release CentOS release 6.4 (Final) [rootlocalhost]# sshd -V unknown option -- V OpenSSH_6.7p1, OpenSSL 1.0.0-fips 29 Mar 2010 服务器以前升级过openssl/openssh 安装openssl和openssh [rootlocalhost ~]# …

nginx的LNMP构建+discuz论坛

一、LNMP: L:linux 操作系统 N:nginx前端页面的web服务 P:PHP,是一种开发动态页面的编程语言,解析动态页面,起到中间件的作用(在nginx和数据库的中间),在中…

横截面数据回归

横截面数据回归 一些笔记 观测值一定要比参数值多 p值<0.05,拒绝H0. 参数显著&#xff0c;不能说明模型对 AIC与BIC准则&#xff0c;越小越好的指标值AIC 回归分析一定要进行残差的正态性检验。所有的残差都大于0&#xff0c;小于0&#xff0c;都不正常。残差正常应该是分…

scikit-learn超参数调优 (自动寻找模型最佳参数) 方法

网格搜索&#xff08;Grid Search&#xff09;&#xff1a; 原理&#xff1a;网格搜索通过预定义的参数组合进行穷举搜索&#xff0c;评估每一种参数组合的性能&#xff0c;选择性能最佳的参数组合。实现&#xff1a;使用GridSearchCV类。示例代码&#xff1a;from sklearn.mod…

小学校园“闲书”交易平台的设计与实现-计算机毕业设计源码04282

小学校园“闲书”交易平台的设计与实现 摘 要 小学校园“闲书”交易平台是为了解决小学生之间的书籍交流和阅读兴趣培养而设计的。该平台通过使用现代技术手段&#xff0c;如移动应用开发和互联网技术&#xff0c;构建了一个功能齐全的交易平台。平台支持用户注册与登录&#x…

应用于空气和液体抑菌的静态UVC LED抑菌模组-WH-UVC001-VO

WH-UVC001-VO是一款用于空气和液体抑菌的静态UVC LED抑菌模组。适用于带水箱、密闭的腔体结构。可安装于顶部、侧壁及底部&#xff0c;出光面符合IP65的防水要求&#xff0c;即使安装于水箱底部也不用担心漏水。 使用的UVC LED的波长范围为260-280nm&#xff0c;具有优良高效的…

JavaScrip——switch类型

目录 任务描述 相关知识 严格相等 switch语句 编程要求 任务描述 北美五大湖的名称和面积如下&#xff1a; 名称面积(平方公里)Superior82414Huron59600Michigan58016Erie25744Ontario19554 本关任务&#xff1a;根据面积判断湖泊的名字。 相关知识 上一关讲解的是拥…

Java项目:基于SSM框架实现的网上医院预约挂号系统【ssm+B/S架构+源码+数据库+毕业论文】

一、项目简介 本项目是一套基于SSM框架实现的网上医院预约挂号系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、…

Linux静态库的制作

Linux操作系统支持的函数库分为&#xff1a; 静态库&#xff0c;libxxx.a&#xff0c;在编译时就将库编译进可执行程序中。 优点&#xff1a;程序的运行环境中不需要外部的函数库。 缺点&#xff1a;可执行程序大 动态库&#xff0c;又称共享库&#xff0c;libxxx.so&a…

解决Python爬虫开发中的数据输出问题:确保正确生成CSV文件

引言 在大数据时代&#xff0c;爬虫技术成为获取和分析网络数据的重要工具。然而&#xff0c;许多开发者在使用Python编写爬虫时&#xff0c;常常遇到数据输出问题&#xff0c;尤其是在生成CSV文件时出错。本文将详细介绍如何解决这些问题&#xff0c;并提供使用代理IP和多线程…

富格林:落实安全方略实现出金

富格林认为&#xff0c;投资其实是一个被缩小了的生活&#xff0c;身处投资世界的人们同样面临着恐惧和贪婪的驱使。假设投资者不懂得如何鉴别市场上的黑幕的话&#xff0c;就很容易落入陷阱当中导致不能安全出金。富格林总结了以下几点建议&#xff0c;希望能帮助投资者避免落…