C++的类与对象

2023-11-16

类的概念

类是将不同类型的数据和处理这些数据的操作封装在一起的一个复合数据类型。

类有两类成员,一类是数据成员,用于表示实体抽象的属性;另一类是成员函数,用来描述实体抽象的行为。

类作为一种数据类型,在定义的时候是不分配内存的。

类通过将数据和对数据进行操作的所有函数绑定在一起,实现了信息隐藏。

关键字

class:类

访问控制权限有三种:

public:公有成员函数或数据成员。随便访问,没有底线。

private:私有成员函数或数据成员。只能在这个类内使用。

protected:被保护成员函数或数据成员。类内使用,或继承使用。

如果缺省指定访问控制权限,默认为private。

类的定义

class classname
{
    private:
    pubilc:
    protected:
};

看一个具体的定义: 

class player
{
	private:
		int hp;
		int exp;
		int rank;
		int damage;
		int money;
	public:
		void HP();
		void EXP();
		void RANK();
		void DAMAGE();
		void MONEY();
		void Initial()
		{
			hp=100;
			exp=0;
			rank=1;
			damage=5;
			money=0;
		}
};

对象的概念

数据类型为类的变量称为类实例、类对象或对象实例,即对象。

对象成员的访问格式与C语言的结构体成员访问类似,都是

对象名.数据成员名

对象名.成员函数名(参数表)

或者用对象指针来访问

对象名->数据成员名

对象名->成员函数名(参数表)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++的类与对象 的相关文章

  • WindowsError:[错误 126] 使用 ctypes 加载操作系统时

    python代码无法在Windows 7平台上运行 def libSO lib ctypes cdll LoadLibrary ConsoleApplication2 so lib cfoo2 1 3 当我尝试运行它时 得到来自python
  • 为什么这个 Web api 控制器不并发?

    我有一个 Web API 控制器 里面有以下方法 public string Tester Thread Sleep 2000 return OK 当我调用它 10 次 使用 Fiddler 时 我预计所有 10 次调用都会在大约 2 秒后
  • MVC3中设置下拉列表中的所选项目

    我必须为视图中的下拉列表设置所选项目 但它不起作用 View div class editor label Html LabelFor model gt model Gender div div class editor field Htm
  • 当事件button.click发生时,如何获取按钮名称/标签?

    我以编程方式制作按钮并将它们添加到堆栈面板中 以便每次用户导航到页面时按钮都会发生变化 我正在尝试做这样的事情 当我单击创建的按钮时 它将获取按钮的标签并转到正确的页面 但是 我无法使用 RoutedEventHandler 访问按钮元素
  • 传递 constexpr 对象

    我决定给予新的C 14的定义constexpr旋转并充分利用它 我决定编写一个小的编译时字符串解析器 然而 我正在努力保持我的对象constexpr将其传递给函数时 考虑以下代码 include
  • 如何将 .txt 文件中的数据转换为 xml? C#

    我在一个文本文件中有数千行数据 我想通过将其转换为更容易搜索的内容来轻松搜索 我希望 XML 或其他类型的大型数据结构 尽管我不确定它是否是最好的对于我的想法 每行的数据如下所示 第 31 册 托马斯 乔治 32 34 154 每本书都不是
  • 处理右值时的 insert 与 emplace

    std string myString std unordered set
  • 在 C# 中,如何根据在 gridview 行中单击的按钮引用特定产品记录

    我有一个显示产品网格视图的页面 该表内有一列 其中有一个名为 详细信息 的超链接 我想这样做 以便如果用户单击该特定产品的详细信息单元格 将打开一个新页面 提供有关该产品的更多信息 我不确定如何确定哪个Product记录链接的详细信息以及我
  • 如何在 C# Designer.cs 代码中使用常量字符串?

    如何在 designer cs 文件中引用常量字符串 一个直接的答案是在我的 cs 文件中创建一个私有字符串变量 然后编辑 Designer cs 文件以使用此变量 而不是对字符串进行硬编码 但设计者不喜欢这样抛出错误 我明白为什么这行不通
  • 是否使用 C# 数据集? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我对 C 中的数据集概念有点困惑 编码 ASP NET 站点 但这并不重要 在我的阅读中 我了解到它们 本质上 用作我的应用程序和我的
  • 在 .NET MAUI 中实现 TouchTracking

    我一直致力于将我们的应用程序从 Xamarin Forms 迁移到 NET MAUI 我们的应用程序几乎没有绘图功能 用户可以用手指进行绘图 我们用了TouchTrackingXamarin Forms 中的 nuget 包 但与 NET
  • 从 C# 使用 Odbc 调用 Oracle 包函数

    我在 Oracle 包中定义了一个函数 CREATE OR REPLACE PACKAGE BODY TESTUSER TESTPKG as FUNCTION testfunc n IN NUMBER RETURN NUMBER as be
  • 将二变量 std::function 转换为单变量 std::function

    我有一个函数 它获取两个值 x 和 y 并返回结果 std function lt double double double gt mult double x double y return x y 现在我想得到一个常量 y 的单变量函数
  • 将 Word 转换为 PDF - 禁用“保存”对话框

    我有一个用 C 编写的 Word 到 PDF 转换器 除了一件事之外 它工作得很好 有时 在某些 Word 文件上 后台会出现一条消息保存源文件中的更改 gt 是 否 取消 但我没有对源文件进行任何更改 我只想从 Word 文件创建 PDF
  • 将函数参数类型提取为参数包

    这是一个后续问题 解包 元组以调用匹配的函数指针 https stackoverflow com questions 7858817 unpacking a tuple to call a matching function pointer
  • 模板类中的无效数据类型生成编译时错误?

    我正在使用 C 创建一个字符串类 我希望该类仅接受数据类型 char 和 wchar t 并且我希望编译器在编译时使用 error 捕获任何无效数据类型 我不喜欢使用assert 我怎样才能做到这一点 您可以使用静态断言 促进提供一个 ht
  • 使动态创建的链接标签在 Winforms 中可点击

    我正在制作一个程序 允许用户单击由动态链接标签创建的公司名称 在我想知道如何做到这一点之前 我从未在 C 中使用过链接标签 可为特定用户生成的业务数量各不相同 因此每个用户的链接标签数量并不相同 然后我想捕获业务 ID 以进行 Json 调
  • 将 Lambda 表达式树与 IEnumerable 结合使用

    我一直在尝试了解有关使用 Lamba 表达式树的更多信息 因此我创建了一个简单的示例 这是代码 如果作为 C 程序粘贴到 LINQPad 中 它可以工作 void Main IEnumerable
  • C++:二叉树所有节点值的总和

    我正在准备面试 我被一个二叉树问题困住了 我们如何计算二叉树所有节点中存在的值的总和 优雅的递归解决方案 伪代码 def sum node if node NULL return 0 return node gt value sum nod
  • 在 System.Type 上使用条件断点时出错

    这是函数 public void Init System Type Type this Type Type BuildFieldAttributes BuildDataColumns FieldAttributes 我在第一行设置了一个断点

随机推荐

  • 【因果推断与机器学习】Causal Inference:Chapter_4_instrument_variables

    Instrument Variables Introduction 我们在因果识别中的目标是找到一种方法 用可观察的统计关系来表达两个特征之间的因果关系 在许多情况下 我们可以使用图形假设和do calculus来理清我们对统计关系的观察
  • 如何在Linux下配置nginx以及docker环境

    nginx环境的配置 环境准备 编译 php fpm环境的搭建 docker环境的配置 什么是docker 在linux中安装docker nginx环境的配置 环境准备 我这里使用的是 centos7 以下操作都是在这个环境下进行执行的
  • JavaScript 逆向调试常用技巧

    1 断点调试 接下来介绍一个非常重要的功能 断点调试 在调试代码的时候 我们可以在需要的位置上打断点 当对应事件触发时 浏览器就会自动停在断点的位置等待调试 此时我们可以选择单步调试 在面板中观察调用栈 变量值 以更好地追踪对应位置的执行逻
  • 100个python算法超详细讲解:分糖果

    1 问题描述 10个小孩围成一圈分糖果 老师分给第1个小孩10块 第2个小孩2块 第3个小 孩8块 第4个小孩22块 第5个小孩16块 第6个小孩4块 第7个小孩10块 第8个小 孩6块 第9个小孩14块 第10个小孩20块 然后所有的小孩
  • 【AI视野·今日CV 计算机视觉论文速览 第215期】Tue, 8 Jun 2021

    AI视野 今日CS CV 计算机视觉论文速览 Tue 8 Jun 2021 showing first 100 of 133 entries Totally 100 papers 上期速览 更多精彩请移步主页 Daily Computer
  • 一文了解语音合成技术(TTS)

    TTS是Text To Speech的缩写 即 从文本到语音 它将计算机自己产生的 或外部输入的文字信息转变为可以听得懂的 流利的汉语口语 或者其他语言语音 输出的技术 隶属于语音合成 SpeechSynthesis 语音 在人类的发展过程
  • 关于深度残差网络(Deep residual network, ResNet)

    深度残差网络 深度残差网络的设计就是为了克服这种由于网络深度加深而产生的学习效率变低 准确率无法有效提升的问题 也称为网络退化 甚至在一些场景下 网络层数的增加反而会降低正确率 这种本质问题是由于出现了信息丢失而产生的过拟合问题 overf
  • conda --init 问题

    初始化编译软件出现下面问题 vscode Windows Visual Studio 2017 Developer Command Prompt v15 9 45 Copyright c 2017 Microsoft Corporation
  • vue2项目window.open打开一个新窗口刷新总回到首页(重定向页面)

    问题描述 使用window open打开新窗口跳转本系统的某一个页面 如 http 192 168 1 206 9529 previewScreen idx 1653966398075965442 刷新总是回到首页 找了很久也没找到解决办法
  • QLExpression学习使用教程

    文章目录 QLExpress 简介 支持特性 Maven引入 例子github源码 图分解 提示 例子 初次使用 Runner执行器设置 执行器执行命令的设置 支持普通的Java语法执行 运算符支持 运算符分类 示例 部分运算符列举 样例使
  • 远控与文件传输

    由于目前工作用到了win10 win7 ubuntu kali等系统 而且考虑到之后出差或者远程办公等 所以打算用我最新的ipad pro连接计算机 这样尽量减少每次背着电脑和ipad等一堆设备 远控与文件传输 1 局域网下电脑文件互传 2
  • 详解Java四大作用域

    文章目录 四大作用域 1 pageContext 1 1定义 2 request 详解 2 1定义 2 2 request域对象的使用 2 3生命周期 2 4 获取请求头数据 3 session 详解 3 1定义 3 2 获取session
  • VSCode Java 开发配置

    本文将介绍如何使用VSCode配置Java开发环境 读者可以通过链接 打开进入到下载页面 读者需要选择自己的操作系统进行下载 下载完成后在操作系统中将其安装 安装完成后打开VSCode软件 首次进入VSCode界面如图所示 VSCode作为
  • [激光原理与应用-62]:激光器 - 光学 - 怎样测量光斑和光束质量?

    目录 一 概述 二 光强分布 三 光束直径 四 光束相机 五 M 因子测量 六 束腰以及大小 七 发散角 八 正态分布 高斯分布 其他概念 一 概述 激光的直径和光强度分布可通过光束轮廓分析仪测量 但为了判定光束质量 还需要加上M 测量扩展
  • 【mac】Obsidian手动安装插件-多端同步

    手动插件安装 porxy github 这个插件是专门解决 无法加载插件市场的 先在github中打开链接 github上教了方法 下载zip文件 解压后 插入到 obsidian plugins文件夹内 一般来讲 小白刚安装的时候难免找不
  • CentOS7 Hive2.3.9 安装部署(mysql 8.0)

    一 CentOS7安装MySQL数据库 查询载mariadb rpm qa grep mariadb 卸载mariadb rpm e nodeps 查询出来的内容 安装wget为下载mysql准备 yum y install wget 在t
  • mysql alter的用法--修改表,字段等信息

    一 修改表信息 1 修改表名 修改表名为studen1 alter table student rename to student1 2 修改表注释 修改表注释 alter table student comment 学生表 二 修改字段信
  • Python-字典合并

    方法1 使用update方法 第二个参数合并第一个参数 def merge dict1 dict2 return dict2 update dict1 两个字典 dict1 a 10 b 8 dict2 d 6 c 4 返回None pri
  • Python入门必背代码大全

    前言 Python作为一门简洁而强大的编程语言 广泛应用于数据分析 Web开发 人工智能等领域 本文将为您整理一份Python入门必背的代码大全 帮助您掌握常用的Python代码片段 快速入门并提升编程技能 一 基本语法和数据类型操作 打印
  • C++的类与对象

    类的概念 类是将不同类型的数据和处理这些数据的操作封装在一起的一个复合数据类型 类有两类成员 一类是数据成员 用于表示实体抽象的属性 另一类是成员函数 用来描述实体抽象的行为 类作为一种数据类型 在定义的时候是不分配内存的 类通过将数据和对