【C++】类的封装 ① ( 类和对象 | 面向对象三大特征 - 封装 继承 多态 | 类的封装引入 )
文章目录
- 一、类和对象
- 1、类和对象概念
- 2、代码示例 - 定义类和对象
- 二、类的封装
- 1、面向对象三大特征
- 2、类的封装引入
一、类和对象
1、类和对象概念
" 面向对象编程 " 是一种 " 编程范式 " , 可以适用于所有的 高级语言 , C++ 也包括在内 ;
面向对象编程 基于 " 对象 " 的概念 , 在 对象 中 可以 封装 数据 ( 成员变量 ) 和 操作 ( 成员方法 ) ;
面向对象编程 提供了 对 外界事物 更好的 抽象 和 模块化 , 使代码更易于理解 ;
下面介绍 面向对象 的 两个重要概念 类 和 对象 ;
- " 类 " 描述了 对象 的 数据 ( 成员变量 ) 和 操作 ( 成员函数 ) , 是 定义对象 的 蓝图 ;
- " 对象 " 是根据 类 创建的 实例 , 是 类 的具体表示 , 每个 对象 都有其自己的 成员变量 和 成员函数 ;
2、代码示例 - 定义类和对象
定义类 : 创建 MyClass 类 , 其中定义了 myVariable 成员变量 和 myFunction 成员方法 ;
class MyClass {
public: int myVariable; // 成员变量 void myFunction() { // 成员函数 // 函数体 }
};
定义上述类的对象 : 定义了 上述 MyClass 类的 实例对象 myObject ;
MyClass myObject; // 创建一个 MyClass 类型的对象
二、类的封装
1、面向对象三大特征
面向对象三大特征 :
- 封装 Encapsulation : 将 数据 和 操作 封装在类中 , 可以将 类 内部的 实现细节 隐藏 , 只暴露有限的 接口 与外部进行交互 , 从而达到保护 类 对象的 内部状态 不被外部随意修改 ;
- 继承 Inheritance : 创建一个新的 子类 , 继承现有 父类 的 属性和方法 , 子类可以添加新的属性和方法以实现更强大的功能 , 还可以重写父类中的方法以实现不同的行为 ; 通过继承,可以构建一个 分层的 类层次结构 , 从而促进代码的重用和扩展 ;
- 多态 Polymorphism : 一个接口 或 父类引用可以指向多种实际类型 ;
面向对象的三大特征 封装 Encapsulation / 继承 Inheritance / 多态 Polymorphism 共同构成了面向对象编程的基本原则 , 为代码的 可读性 / 可维护性 / 可扩展性 提供支持 ;
2、类的封装引入
封装 Encapsulation : 将 数据 和 操作 封装在类中 , 可以将 类 内部的 实现细节 隐藏 , 只暴露有限的 接口 与外部进行交互 , 从而达到保护 类 对象的 内部状态 不被外部随意修改 ;
将 现实世界 中 存在的 客观事物 封装成 抽象 的 类 , 类 中 包含了 数据 和 操作 ,
- 只有 可信的 类 或 对象 才能访问 隐藏起来的信息 ;
- 大部分类默认只能访问 类 公开的接口 ;
C++ 类 中 , 通过 " 访问控制修饰符 " 定义 类 成员变量 和 成员方法 的 访问级别 ;
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
【C++】类的封装 ① ( 类和对象 | 面向对象三大特征 - 封装 继承 多态 | 类的封装引入 )
文章目录 一、类和对象1、类和对象概念2、代码示例 - 定义类和对象 二、类的封装1、面向对象三大特征2、类的封装引入 一、类和对象 1、类和对象概念 " 面向对象编程 " 是一种 " 编程范式 " , 可以适用于所有的 高级语言 , C 也包括在内 ; 面向对象编程 基…...
![](https://img-blog.csdnimg.cn/6c3386979ac2450aaf13673d4fa2825b.png)
Docker原理详细剖析-Namespace
一、简介 docker容器技术从2013年开始火了以后,2014年左右当时有幸在学校能和学院教授一起做些项目以及学习。其中docker技术在当时来说还算是比较新的技术,国内关于这块的资料以及使用也才刚刚开始,讨论docker技术,算是相对时髦的…...
![](https://img-blog.csdnimg.cn/3f90083d2efa4c5b862e99ead76bf3de.png)
sql:SQL优化知识点记录(九)
(1)小表驱动大表 对sql调优的分析: 排序优化: 数据库的连接方式,里面的数据尽量这样连接,尽量选择第一个方式,因为两个表的连接一共建立5次连接,第二个建立1000次连接,从…...
![](https://img-blog.csdnimg.cn/5db0efa6eb4847caa0b2a3b3a8418f6c.png)
【PowerQuery】PowerQuery导入JSON数据
Json数据是目前使用的最为频繁和广泛的一种数据交换格式,JSON的全称为JavaScript Object Notation。Json 主要用于在互联网的消息的数据交换信息传递,他的格式与XML有什么区别呢?为什么不用XML,用Json有啥好处呢?我们接下来讨论下Json相比XML的优势: XML传递的数据过多服…...
![](https://www.ngui.cc/images/no-images.jpg)
bootstrap 主题
颜色值 根据等级 primarysecondarysuccessinfowarningdangerlightdark 根据名字 blackwhiteblueindigopurplepinkredorangeyellowgreentealcyangraygray-darkbrown 好像是self 加的 根据颜色值的转化 var 变量 –bs-**** 比如:–bs-blue,–bs-pri…...
![](https://img-blog.csdnimg.cn/66e525ffd41247949d9790a1364a3d46.png#pic_center)
FPGA 学习笔记:Vivado 工程管理技巧
前言 当前使用 Xilinx 的 FPGA,所以需要熟悉 Xilinx FPGA 的 开发利器 Vivado 的工程管理方法 这里初步列举一些实际 Xilinx FPGA 开发基于 Vivado 的项目使用到的工程的管理技巧 代码管理 做过嵌入式软件或者其他软件开发的工程技术人员,都会想到使用代码管理工具,如 SVN 、…...
![](https://img-blog.csdnimg.cn/img_convert/9175adef535628a1529b5189743dea3b.png)
Java低代码开发:jvs-list(列表引擎)功能(二)字段及样式配置
字段的增减 进入列表页设计器-页表设计界面,点击新增一行、或者删除按钮,可以对字段进行增减操作,如果对于权限的列表页,可以使用批量创建字段的按钮: 字段的批量设置,点击批量添加如下图所示 字段为中文名…...
![](https://img-blog.csdnimg.cn/055ceeb0c06a4ae99c6f41b04d6566b5.png)
【Java】线程都有哪几种状态
文章目录 前言传统线程模型(操作系统)中线程状态Java线程中的状态线程的运行流程 前言 首先我们要知道,在传统(操作系统)的线程模型中线程被分为五种状态,在java线程中,线程被分为六种状态。 …...
![](https://img-blog.csdnimg.cn/img_convert/d6332365a14c224321ead001d7c1b0c8.webp?x-oss-process=image/format,png)
为什么服务端会有那么多的 TimeWait ?
工作中无论是开发环境还是线上环境,我们都出现过大量的 timewait 状态的连接,例如下面这个例子 服务端简单的开辟一个 web server 监听 9966 端口 客户端进行疯狂的请求服务端 瞬间就可以看到咱们服务端的出现大量的 TIME_WAIT 状态的连接 这个时候&…...
![](https://img-blog.csdnimg.cn/img_convert/a377ac305efb1330fd31ca083b8d2081.png)
任意文件读取及漏洞复现
文章目录 渗透测试漏洞原理任意文件读取1. 任意文件读取概述1.1 漏洞成因1.2 漏洞危害1.3 漏洞分类1.4 任意文件读取1.4.1 文件读取1.4.2 任意文件读取1.4.3 权限问题 1.5 任意文件下载1.5.1 一般情况1.5.2 PHP实现1.5.3 任意文件下载 2. 任意文件读取攻防2.1 路径过滤2.1.1 过…...
![](https://www.ngui.cc/images/no-images.jpg)
目前的一些关于机器学习的感悟
目前的一些关于机器学习的想法 大家一直都在说深度学习和积极学习,当我在本科的时候,就听到很多关于这方面的东西,但当时自己对于这些东西的概念较为模糊,随着研究生进一步的学习,我想讲一下,到目前我所理…...
![](https://www.ngui.cc/images/no-images.jpg)
salesforce从sandbox部署到生产环境的自定义字段权限没有成功上载
salesforce从sandbox部署到生产环境的自定义字段权限没有成功上载 只将字段名称和类型上载了。 查阅: https://help.salesforce.com/s/articleView?idsf.deploy_special_behavior.htm&type5 显示: 自定义字段 从 API 版本 30.0 开始,…...
![](https://img-blog.csdnimg.cn/b810a7bf6b074d70a494b3206203843e.gif#pic_center)
字节跳动推出AI对话工具“豆包”:免费用
我是卢松松,点点上面的头像,欢迎关注我哦! 听说松松客服的小马爆料了一个消息:字节跳动推出了一个新的AI大模型对话工具,叫做“豆包”。竟然一查发现,早在8月18号就已经上线了呢。原来这个“豆包”其实是之…...
![](https://img-blog.csdnimg.cn/893a040623954c3ba9aaba2e266176bb.png)
时序预测 | MATLAB实现TCN-LSTM时间卷积长短期记忆神经网络时间序列预测
时序预测 | MATLAB实现TCN-LSTM时间卷积长短期记忆神经网络时间序列预测 目录 时序预测 | MATLAB实现TCN-LSTM时间卷积长短期记忆神经网络时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现TCN-LSTM时间卷积长短期记忆神经网络时间序列预测…...
![](https://www.ngui.cc/images/no-images.jpg)
代码随想录训练营二刷第十五天 | 层序遍历10道 226.翻转二叉树 101.对称二叉树 2
代码随想录训练营二刷第十五天 | 层序遍历10道 226.翻转二叉树 101.对称二叉树 2 一、102. 二叉树的层序遍历 题目链接:https://leetcode.cn/problems/binary-tree-level-order-traversal/ 思路:两次while,内层控制每一行的数量,…...
![](https://img-blog.csdnimg.cn/b6c3ede5db8f4567ac99b2d19785e72e.png)
nowcoder NC10 大数乘法
题目链接: https://www.nowcoder.com/practice/c4c488d4d40d4c4e9824c3650f7d5571?tpId196&tqId37177&rp1&ru/exam/company&qru/exam/company&sourceUrl%2Fexam%2Fcompany&difficultyundefined&judgeStatusundefined&tags&tit…...
![](https://img-blog.csdnimg.cn/9995c09e57304520bb91227069a502d9.png)
非科班菜鸡算法学习记录 | 代码随想录算法训练营第58天|| 单调栈! 739. 每日温度 496.下一个更大元素 I
739. 每日温度 输入一个数组,找比i天温度高的第一天 知识点:单调栈 状态:看思路自己写 思路: 看自己写的注释,维护一个单调栈 // 版本一 class Solution { public:vector<int> dailyTemperatures(vector<…...
![](https://www.ngui.cc/images/no-images.jpg)
【Luogu】 P5445 [APIO2019] 路灯
题目链接 点击打开链接 题目解法 转化很妙 考虑关路灯 x x x 的操作 令左边第一个未关的路灯为 L L L,右边第一个未关的路灯为 R R R,那么这一次会影响的区间即为 l ∈ [ L 1 , x ] , r ∈ [ x , R − 1 ] l\in[L1,x],\;r\in[x,R-1] l∈[L1,x],…...
![](https://img-blog.csdnimg.cn/828a4eaea77345b6a0bd97a36427807b.png)
Kafka3.0.0版本——消费者(独立消费者消费某一个主题中某个分区数据案例__订阅分区)
目录 一、独立消费者消费某一个主题中某个分区数据案例1.1、案例需求1.2、案例代码1.3、测试 一、独立消费者消费某一个主题中某个分区数据案例 1.1、案例需求 创建一个独立消费者,消费firstTopic主题 0 号分区的数据,所下图所示: 1.2、案…...
![](https://img-blog.csdnimg.cn/2dd0e5933e6b4c66b146183af6d50ea7.png)
基于Simulink的用于电力系统动态分析
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
![](https://img-blog.csdnimg.cn/66124a20217146aa8871e624fb4e6a4f.png)
日200亿次调用,喜马拉雅网关的架构设计
说在前面 在40岁老架构师 尼恩的读者社区(50)中,很多小伙伴拿到一线互联网企业如阿里、网易、有赞、希音、百度、滴滴的面试资格。 最近,尼恩指导一个小伙伴简历,写了一个《API网关项目》,此项目帮这个小伙拿到 字节/阿里/微博/…...
![](https://img-blog.csdnimg.cn/b6464fa9a64143fc8e2cf7ee07a73736.png)
构造函数和析构函数(个人学习笔记黑马学习)
构造函数:主要作用在于创建对象时为对象的成员属性赋值,构造函数由编译器自动调用,无须手动调用。析构函数:主要作用在于对象销毁前系统自动调用,执行一些清理工作。 #include <iostream> using namespace std;//对象初始化和清理class…...
![](https://img-blog.csdnimg.cn/img_convert/7167b6975a3fbc83ba14509e5b91e6ce.png)
GPT引领前沿与应用突破之GPT4科研实践技术与AI绘图教程
详情点击链接:GPT引领前沿与应用突破之GPT4科研实践技术与AI绘图教程 前沿 GPT对于每个科研人员已经成为不可或缺的辅助工具,不同的研究领域和项目具有不同的需求。 如在科研编程、绘图领域: 1、编程建议和示例代码: 无论你使用的编程语言是…...
![](https://www.ngui.cc/images/no-images.jpg)
Git上传新项目
第一步:初始化 Git 仓库 首先,打开终端或命令行界面,然后导航到项目目录。运行下面的命令来初始化一个新的 Git 仓库: git init这将创建一个新的 .git 子目录,其中包含了初始化的 Git 仓库。 第二步:添加…...
![](https://www.ngui.cc/images/no-images.jpg)
C语言文件操作总结
目录 字符方式读入文件 数据块方式读写文件 文件定位与随机读写 文件中数据的修改 字符方式读入文件 1.向文件中写入(输入字符) 用 fputc 函数或 puts 函数可以把一个字符写到磁盘文件中去。 int fputc(int ch,FILE * fp) ch 是要输出的字符&#…...
![](https://www.ngui.cc/images/no-images.jpg)
原生js之dom如何进行事件监听(事件捕获/冒泡)
那么好,这次主要讲解的就是dom是如何进行事件监听和事件取消监听的,我们知道vue中主要用watch来进行监听. js监听与取消监听 那么原生js主要用到的就是addListenEvent事件来进行监听,可以监听文档dom对象也可以监听浏览器bom对象,监听事件的语法结构如下 Dom/Bom监听 eleme…...
![](https://img-blog.csdnimg.cn/9caeb6a74fed4897b0475424b3aa5a0d.png)
使用SimPowerSystems并网光伏阵列研究(Simulink实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
![](https://img-blog.csdnimg.cn/5268adda713b4d178f0150e34c4a28c7.png)
BUUCTF-WEB-[ACTF2020 新生赛]Includel
打开靶机 点击tips 利用Burp抓包,未见异常 但发现了响应头是 PHP/7.3.13 想到了"php://input"伪协议POST发送PHP代码 构建Payload:?filephp://filter/readconvert.base64-encode/resourceflag.php 这里需要注意的是使用php://filter伪协议…...
![](https://www.ngui.cc/images/no-images.jpg)
算法通关村十四关:白银挑战-堆能高效解决的经典问题
白银挑战-堆能高效解决的经典问题 1.在数组中找第K大的元素 LeetCode215 https://leetcode.cn/problems/kth-largest-element-in-an-array/ 思路分析 主要解决方法有3个,选择法,堆查找法和快速排序法 方法1:选择法 先遍历一遍找到最大的…...
![](https://img-blog.csdnimg.cn/img_convert/15199501875d5d9d8ab0fc608ed416e4.png)
跨站请求伪造(CSRF)攻击与防御原理
跨站请求伪造(CSRF) 1.1 CSRF原理 1.1.1 基本概念 跨站请求伪造(Cross Site Request Forgery,CSRF)是一种攻击,它强制浏览器客户端用户在当前对其进行身份验证后的Web 应用程序上执行非本意操作的攻击&a…...
![](/images/no-images.jpg)
怎么用域名做邮箱网站/包就业的培训机构
Mysql常用函数的汇总,可看下面文章 https://www.cnblogs.com/poloyy/p/12890763.html substring 的作用 截取指定范围的字符串,学过Java的同学,对这个应该不陌生,字符串函数也有一个substring,作用一样哈 substring 的…...
![](https://img-blog.csdnimg.cn/20190325140341989.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpcWl1bWFuMTgwNjg4,size_16,color_FFFFFF,t_70)
dede网站建设的个人总结/搜索引擎排名大全
nana 安全牛 漏洞管理依然是大多数安全计划的重要组成部分,全球绝大多数公司企业都认同这一点。 在安全公司Tripwire最近的一份网络健康状态调查中,80%的受访者称自家企业有漏洞扫描计划。约60%的受访者每天或每周进行一次扫描,40%的受访者…...
![](/images/no-images.jpg)
开网络公司做网站挣钱吗/贵阳seo网站推广
一、路由 uni-app页面路由为框架统一管理,需要在pages.json里配置每个路由页面的路径和页面样式。类似的小程序在app.json中配置页面路由相同 页面栈 框架以栈的形式管理当前所有页面,当发生路由切换的时候,页面栈的表现如下: …...
![](https://img-blog.csdnimg.cn/9b1971d1c5f1431d88fec6957b4ed6e1.png#pic_center)
快捷做网站/seo 网站优化推广排名教程
目录前文说明3. 第一阶段升级(1)点击【升级】(2)升级介绍(3)最终中用户许可协议(4)连接到源设备(5)VC7与ESXi 证书警告(6)vCenter Ser…...
![](https://img-blog.csdnimg.cn/20200422144554752.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1c3Vvd2VpMTAxMA==,size_16,color_FFFFFF,t_70)
外星人做的网站/百度收录快的发帖网站
设计人员往往忽略高容量、多层陶瓷电容(MLCC)随其直流电压变化的特性。所有高介电常数或II类电容(B/X5R R/X7R和F/Y5V特性)都存在这种现象。然而,不同类型的MLCC变化量区别很大。Mark Fortunato曾经写过一篇关于该主题的文章,给出的结论是:您…...
![](/images/no-images.jpg)
vivo浏览器下载/优化设计六年级上册语文答案
之前谈过doctype的问题,被忽视的DOCTYPE,最末说了提倡使用<!DOCTYPE HTML>,最简洁明了且是标准模式。 但是最近发现使用这种方式会产生问题,见代码: <!DOCTYPE HTML> <html> <head> <title…...