【C++学习】类和对象--封装

news/2024/4/24 20:50:29/

具有相同性质的对象,我们可以抽象称为类(如:人类,车类

封装

封装是C++面向对象三大特性之一

1.将属性和行为作为一个整体,表现生活中的事物

2.将属性和行为加以权限控制

一.表现事物,属性和行为写在一起

示例1:设计一个圆类,并求其周长

#include<iostream>
using namespace std;
const double PI = 3.14;
//设计一个圆类,求周长
//2*PI*rclass circle //定义一个圆类
{//访问权限:公共权限
public://属性:半径int m_r;//行为:获取周长double cal(){return 2 * PI * m_r;}
};
int main()
{circle c1;//通过圆类创建具体的圆c1.m_r = 10;//给圆的半径赋值cout << "圆的周长为" << c1.cal() << endl;system("pause");return 0;
}

示例2:设计一个学生类,属性有姓名和学号,可以给姓名和学号赋值,可以显示学生的姓名的学号

#include<iostream>
using namespace std;
const double PI = 3.14;
//设计一个圆类,求周长class student //定义一个学生类
{//访问权限:公共权限
public://属性:姓名,学号string m_name;int m_id;//行为:获取学生信息void showstu(){cout << "姓名:" << m_name << "学号:" << m_id<<endl;}//行为:赋值void setname(string name){m_name = name;}void setid(int id){m_id = id;}
};
int main()
{student s1;s1.setname("xxx");s1.setid(666);s1.showstu();system("pause");return 0;
}

类中的属性和行为统一称为   成员

属性    成员属性    成员变量

行为    成员行为    成员方法

 二.访问权限

访问权限有三种(访问修饰符)

1.公共权限     public            成员   在类内可以访问,类外也能访问

2.保护权限     protected      成员   在类内可以访问,类外不可以访问  (儿子可以访问父亲

3.私有权限     private          成员   在类内可以访问,类外不可以访问  (儿子不可以访问父亲

 代码可以看:C++ 类访问修饰符 | 菜鸟教程 (runoob.com)

class和struct的区别

唯一区别在于访问权限不同 

struct默认权限是公共 public

class默认权限是私有  private

设计案例:

【C++学习】 设计案例1:设计立方体类_想七想八不如11408的博客-CSDN博客

【C++学习】设计案例2:点和圆的关系_想七想八不如11408的博客-CSDN博客

 (可以学习到将类查分成头文件+源文件的形式)


http://www.ppmy.cn/news/47883.html

相关文章

类加载器详解(重点)之双亲委派

回顾一下类加载过程 开始介绍类加载器和双亲委派模型之前&#xff0c;简单回顾一下类加载过程。 类加载过程&#xff1a;加载->连接->初始化。连接过程又可分为三步&#xff1a;验证->准备->解析。 加载是类加载过程的第一步&#xff0c;主要完成下面 3 件事情…

关于API的测试(电商Taobao/jdAPI测试)

我们在API上执行的一些常见测试如下。 验证返回值是否基于输入条件。应根据请求验证API的响应。 在API更新任何数据结构时验证系统是否正在验证结果 验证API是触发其他事件还是请求其他API 在没有返回值的情况下验证API的行为 API测试的优势(测试KEY申请&#xff09;&#xff…

【DRF开发手册】使用 Django Rest Framework 的 @action 定义自定义方法

本文节选自笔者博客&#xff1a; https://www.blog.zeeland.cn/archives/so3f209hfeac &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是Zeeland&#xff0c;全栈领域优质创作者。&#x1f4dd; CSDN主页&#xff1a;Zeeland&#x1f525;&#x1f4e3; 我的博客&…

Linux基础——DNS服务器原理及搭建

Linux基础——DNS服务器原理及搭建 一、DNS服务器原理1.DNS系统分布式数据结构2.DNS查询类型3.DNS服物器类型 二、搭建DNS域名解析服务器步骤1.安装bind软件包2. 查看需要修改的配置文件所在路径3. 修改主配置文件4. 修改区域配置文件&#xff0c;添加正向区域配置5.配置正向区…

算法套路十一 ——回溯法之组合型回溯

算法套路十一 ——回溯法之组合型回溯 该节是在上一节回溯法之子集型回溯的基础上进行描写&#xff0c;组合型回溯会在子集型回溯的基础上判断所选子集是否符合组合要求&#xff0c; 故请首先阅读上一节算法套路十——回溯法之子集型回溯 算法示例&#xff1a;LeetCode77. 组合…

C# 异常处理机制和常见的异常类型

在 C# 中&#xff0c;异常处理是一个非常重要的概念&#xff0c;它可以让我们在程序发生错误时进行有效的处理&#xff0c;使程序具备更好的鲁棒性。C# 异常处理机制基于 try-catch-finally 语句块&#xff0c;其基本用法如下&#xff1a; try {// 可能会抛出异常的代码 } cat…

ai改写句子软件-ai改写

AI免费伪原创&#xff1a;助力网站内容升级 您是否曾经为网站优化而烦恼&#xff0c;无论是内容更新还是SEO优化&#xff0c;都需要大量的时间和精力。但是&#xff0c;您是否知道&#xff0c;现在有一款能够使用AI技术来帮助您完成这些任务&#xff0c;而且还是免费的呢&…

【图像处理】基于 Matlab GUI 阈值分类器进行草莓识别步骤流程

目录 基于 Matlab GUI 阈值分类器进行草莓识别 基于 Matlab GUI 阈值分类器进行草莓识别 基于 Matlab GUI 阈值分类器进行草莓识别,可以通过以下步骤实现: 1.采集草莓图像数据集,包括正负样本 2.使用 MA

ES6入门

ECMAScript 6 简介 ECMAScript 6.0&#xff08;以下简称 ES6&#xff09;是 JavaScript 语言的下一代标准&#xff0c;已经在 2015 年 6 月正式发布了。它的目标&#xff0c;是使得 JavaScript 语言可以用来编写复杂的大型应用程序&#xff0c;成为企业级开发语言。 ECMAScri…

Unity RenderStreaming 云渲染3.1.0-exp.6 食用手册

Unity云渲染 &#x1f957;资源&#x1f364;兼容性&#x1f367;手机端连接&#x1f969;安装方法&#x1f35b;IP端口设置&#x1f371;官方案例尝鲜&#x1f332;导入案例&#x1f332;添加场景&#x1f332;启动WebApp&#x1f332;打开Menu场景&#x1f332;连接参数设置&…

React 列表 Keys

列表 & Keys 列表 React 列表可以使用 JavaScript 的 map() 方法来创建。如下&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"UTF-8" /> <title>React demo</title> <script src"https://cdn.static…

编译原理考试大题分析【太原理工大学】

有些基本公式可以看这里&#xff0c;大题内容请以本篇为准&#xff01;https://blog.csdn.net/m0_52861684/article/details/130071191?spm1001.2014.3001.5501 之前说错了&#xff0c;考试题型没有简答题和填空题&#xff0c;只有十个选择题是 20 分&#xff0c;其余全是大题…

prompt的演变

随着功能的增加&#xff0c;提示工程的复杂性将不可避免地增加。在这里&#xff0c;我解释了如何将复杂性引入到提示工程的过程中。 静态prompt 如今&#xff0c;试验prompt和提示工程已司空见惯。通过创建和运行提示的过程&#xff0c;用户可以体验 LLM 的生成能力。 文本生…

一文读懂Profibus/Profinet/Ethernet的区别

Ethernet(以太网络)是大家很熟悉的一种网络了&#xff0c;由Xerox公司创建并由Xerox、Intel和DEC公司联合开发的基带局域网规范&#xff0c;是当今现有局域网采用的最通用的通信协议标准&#xff0c;包括标准的以太网&#xff08;10Mbit/s)、快速以太网&#xff08;100Mbit/s&a…

条码控件Aspose.BarCode入门教程(6):如何在C# 中生成GS1-128 条码

Aspose.BarCode for .NET 是一个功能强大的API&#xff0c;可以从任意角度生成和识别多种图像类型的一维和二维条形码。开发人员可以轻松添加条形码生成和识别功能&#xff0c;以及在.NET应用程序中将生成的条形码导出为高质量的图像格式。 Aspose API支持流行文件格式处理&am…

ARM Coresight 及 DS-5 介绍 5 - ARM Cortex-M DS-5 加载 ELF 文件运行

文章目录 1.1.1 DS-5 工程创建1.1.2 DS-5 加载 ELF 脚本创建1.1.3 DS-5 脚本读写 Memory1.1.4 DS-5 扫描脚本 1.1.1 DS-5 工程创建 在使用ARM DS-5 连接 board(或者PFGA)之前首先需要能够扫描到相应的硬件信息&#xff0c;比如对应的cpu的相关信息&#xff1a;coresight 相关组…

至尊宝工具箱 - 电商运营选品必备工具下载安装详细教程

简介 至尊宝插件是一款电商网络浏览插件&#xff0c;能够帮助店主更好地运营自己的网店&#xff0c;这款插件功能十分全面强大&#xff0c;可以实现搜主图、快速商家商品、优化商品标题等&#xff0c;通过帮助店家增加曝光量来增效销售&#xff0c;感兴趣的朋友快来体验。 下…

Codeforces Round 816 (Div. 2)(C. Monoblock)

传送门 题意&#xff1a; 定义一个数组&#xff0c;定义它 相等连续段的个数 如1,2,2,1&#xff0c;相等连续段有[1],[2,2],[1]&#xff0c;共3个 如2,2,2,1&#xff0c;相等连续段有[2,2,2],[1]&#xff0c;共2个 给定一个数组a&#xff0c;定义g(l,r)为&#xff0c;子数组中…

比较几种热门Hybrid App前端框架

作为一种既能够在原生应用程序环境中运行&#xff0c;也能够在 Web 浏览器中运行的应用程序&#xff0c;Hybrid App 主要使用 Web 技术进行开发&#xff0c;如 HTML、CSS 和JavaScript&#xff0c;并使用一个中间层将其封装在原生应用程序中。随着技术的持续推进&#xff0c;Hy…

如何在四维轻云地理空间数据管理云平台中搭建场景?

《四维轻云》是一款轻量化的地理空间数据管理云平台&#xff0c;支持地理空间数据的在线管理、编辑以及分享。平台有项目管理、数据上传、场景搭建、发布分享、素材库等功能模块&#xff0c;支持多用户在线协作管理&#xff0c;实现了轻量化、便捷化的空间数据应用。 目前&…