C++中的自定义数据类型:类和结构体

目录

  • 自定义数据类型
    • (1)类
      • A.面向对象的四大特征
      • B.What(什么是类)
      • C.Why(类的作用)
      • D.How(如何定义和使用类)
    • (2)结构体

自定义数据类型

(1)类

A.面向对象的四大特征

谈到类,就必须讲一下面向对象,而面向对象的四大特征我们必须掌握

抽象:将现实世界中复杂的问题简化为可管理的模块或类
封装:保护对象状态不被外部直接修改,提高程序的安全性和鲁棒性
继承:提高代码的可重用性,有利于程序的维护
多态:同一方法或操作符在不同对象执行时可产生不同的行为,多态是设计模式的基础

B.What(什么是类)

一种封装了数据变量函数的自定义数据结构

C.Why(类的作用)

  • 鲁棒性和安全性:封装数据和方法,隐藏内部实现细节,暴露必要的接口给外部
  • 抽象和建模:用于解决现实世界中的问题
  • 重用性:继承允许代码重用

D.How(如何定义和使用类)

//定义程序员类
class Programmer
{
private:string strName;int iAge;string strHobby;
public:Programmer(string strName_, int iAge_, string strHobby_):strName(strName_),iAge(iAge_),strHobby(strHobby_){}~Programmer(){};
}
void main()
{//使用程序员类Programmer zhangsan("zs",23, "一杯酒,一包烟,一个bug玩一天!");...
}

(2)结构体

结构体struct和类的唯一区别:成员默认的访问权限不同,类的默认权限是private,而struct的默认权限是public

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

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

相关文章

基于MATHCAD的傅里叶级数模拟和方波图像绘制

一、MATHCAD软件简介 MATHCAD是一款功能强大的数学计算软件,它允许用户以类似手写公式的方式输入数学表达式,并即时显示计算结果和图形。在工程研究和学术写作的世界里,MathCAD以其强大的符号运算能力和直观的数学书写体验脱颖而出。MATHCAD…

三相PWM整流器PI双闭环控制Simulink

1.模型简介 本仿真模型基于MATLAB/Simulink(版本MATLAB 2017Rb)软件。建议采用matlab2017 Rb及以上版本打开。(若需要其他版本可联系代为转换) 2.拓扑结构: 3.模型算法架构: 4.仿真算法: &am…

Lua协程(同步的多线程)

1.coroutine.create( func ) 创建一个协程,返回co(coroutine),参数是一个函数,当调用resume时就唤醒co并调用函数 2.coroutine.resume(co, 函数参数们) 启动协程co并传入协程调用函数的参数,可以带回协程…

前端XMLHttpRequest、Fetch API、Axios实现文件上传、下载方法及后端Spring文件服务器处理方法

前言 本文总结Web应用开发中文件上传、下载的方法,即从前端表单输入文件并封装表单数据,然后请求后端服务器的处理过程;从基础的JavaScript中XmlHttpRequest对象、Fetch API实现上传、下载进行说明,并给出了前端常用的axios库的请…

[AHK] WinHttpRequest.5.1报错 0x80092004 找不到对象或属性

目录 背景描述 用浏览器访问,正常返回 ​编辑 AHK v2官方示例源代码 AHK v2运行结果报错(0x80092004) 找不到对象或属性 用thqby大佬的WinHttpRequest.ahk库测试报错 0x80092004 找不到对象或属性 附: 用Apifox访问,也正常返回 AHK v1 …

克洛托光电再度合作福晶科技,高精度光学镜头装调仪正式交付

近日,苏州东方克洛托光电技术有限公司(下称“克洛托光电”)高精度光学镜头装调仪正式交付于福建福晶科技股份有限公司,研发人员在现场完成设备安装调试并介绍使用方法。据悉,这已是双方第二次展开合作。 前沿产品力助推…

django之 annotate,aggrate

annotate:annotate() 不是一个终止子句。 annotate() 子句的输出是一个 QuerySet;这个 QuerySet 可以使用任何其他 QuerySet 操作进行修改,包括 filter()、order_by(),甚至对 annotate() 的额外调用。"增加一列属性" ag…

k8s中kubesphere开启devops总是报错解决

自己搭建过k8s集群遇到各种形式的报错,手动去解决,其实这都是由程序自动去解决的问题,由于自己的的失误导致问题不得不去亲自解决是虽然管用但费时费力,在kubersphere开启devops本身没什么问题,但由于虚拟机配置低导致…

SpringBoot+Vue实现简单的文件上传(策略模式)

SpringBootVue实现简单的文件上传 1 环境 SpringBoot 3.2.1,Vue 2,ElementUI 2 问题 前两篇文章,我们上传了txt、Excel文件,其实文件类型有很多种,如果我们的upload组件没有上传文件类型的限制,那么同一个…

MongoDB Shard 集群 Docker 部署

MongoDB Shard Docker 部署 部署环境 主机地址主机配置主机系统Mongodb1/192.168.31.1352CPU 4GBDebian12Mongodb2/192.168.31.1092CPU 4GBDebian12Mongodb3/192.168.31.1652CPU 4GBDebian12 镜像版本 mongodb/mongodb-community-server:5.0.27-ubuntu2004 部署集群 部署…

【tomcat】Tomcat如何扩展Java线程池原理

池化技术 在后端中,对于经常使用池化就是来提升系统性能,比如数据库连接池、线程池连接池等,本质都是利用空间换时间的来提升性能,用来避免资源的频繁创建和销毁,以此提高资源的复用率,所以合理设置系统所…

大语言模型诞生过程剖析

过程图如下 📚 第一步:海量文本的无监督学习 得到基座大模型🎉 🔍 原料:首先,我们需要海量的文本数据,这些数据可以来自互联网上的各种语料库,包括书籍、新闻、科学论文、社交媒体帖…

Object.assign方法有什么用?超详细测试用例、实例、可以在浏览器的控制台打印结果

Object.assign 是一个 JavaScript 方法,用于将一个或多个源对象的所有可枚举属性复制到目标对象中。它返回目标对象。这个方法常用于合并对象或浅复制对象。 语法 Object.assign(target, ...sources)target: 目标对象。sources: 一个或多个源对象。 示例 1. 合并…

【2024最新】C++扫描线算法介绍+实战例题

扫描线介绍:OI-Wiki 【简单】一维扫描线(差分优化) 网上一维扫描线很少有人讲,可能认为它太简单了吧,也可能认为这应该算在差分里(事实上讲差分的文章里也几乎没有扫描线的影子)。但我认为&am…

简单搭建卷积神经网络实现手写数字10分类

搭建卷积神经网络实现手写数字10分类 1.思路流程 1.导入minest数据集 2.对数据进行预处理 3.构建卷积神经网络模型 4.训练模型,评估模型 5.用模型进行训练预测 一.导入minest数据集 MNIST--->raw--->test-->(0,1,2...) 10个文件夹 MNIST--->raw-…

VRRP虚拟路由冗余技术

VRRP虚拟路由冗余技术:是一种路由容错协议,用于在网络中提供路由器的冗余备份。它通过将多个路由器虚拟成一个虚拟路由器并且多个路由器之间共享一个虚拟IP地址来实现冗余和高可用性。当承担转发业务的主路由器出现故障时,其他备份路由器可以…

git的下载流程,及使用方法,官网地址怎么找?

要下载git以及了解使用方法,可以按照以下步骤进行操作: 打开浏览器,输入git的官方网站地址:https://git-scm.com/(官网地址可能会有变动,请根据最新情况进行搜索)。 在官网上找到下载按钮或链接…

安全防御:防火墙概述

目录 一、信息安全 1.1 恶意程序一般会具备一下多个或全部特点 1.2 信息安全五要素: 二、了解防火墙 2.1 防火墙的核心任务 2.2 防火墙的分类 2.3 防火墙的发展历程 2.3.1 包过滤防火墙 2.3.2 应用代理防火墙 2.3.3 状态检测防火墙 补充防御设备 三、防…

uniapp微信小程序授权登录实现

我们在做小程序的时候用的最多的方式登录 就是原生的授权登录的功能 这个方法 也不是很难 首先我们要获取我们在小程序中的code值 我们小封装一个获取code 的方法 在页面中可以直接调用 封装在 js 中 export const wxlogin () > {return new Promise((resolve, reject…

骑士人才系统74cms专业版实现本地VUE打包和在线升级方法以及常见问题

骑士人才系统我就不多说了目前来说我接触的人才系统里面除了phpyun就是骑士人才了,两个历史都很悠久,总起来说功能方面各分伯仲,前几期我作过Phpyun的配置教程这次我们针对骑士人才系统说说怎么使用VUE源码本地一键打包后台和在线升级方式&am…