类和对象

2023-11-16

一.类

类描述了一组具有相同属性和行为特征的对象。对象是类的实例。类是一种数据类型,而对象是该类型的变量。
在c++语言中,一个类的定义包含数据成员和成员函数两部分内容。数据成员定义该类对象的属性,不同对象的属性值可以不同。成员函数定义了该类对象的操作即行为。
1.类的定义

class 类名
{
private: 
    //私有数据成员和成员函数
public: 
    //公有数据成员和成员函数
protected:
    //保护的数据成员和成员函数    
}

(1)类成员有以下三种访问控制权限

  • 私有成员private。私有成员是在类中被隐藏的部分,它往往是用来描述该类对象属性的一些数据成员,这些数据成员用户无法访问,只能通过成员函数或某些特殊说明的函数才可以引用;
  • 公有成员public。公有成员一般是成员函数,它提供了外部程序与类的接口功能,用户通过公有成员访问该类对象中的数据成员;
  • 保护成员protected。它是只由该类的成员函数、友元和公有派生类成员函数访问的对象。
    (2)结构体和类的区别
  • 在默认情况下,结构体中的数据成员和成员函数都是公有的,而在类中是私有的。在所有其它方面,结构体和类等价。

2.成员函数的定义
类的数据成员说明对象的特征,而成员函数决定对象的操作行为。成员函数是程序算法实现部分,是对封装的数据进行操作的唯一途径。类的成员函数有两种定义方法:外联定义和内联定义。

(1)外联函数是在类定义体中声明,而在类外定义的成员函数。在类外定义成员函数的具体形式:
返回值类型 类名::成员函数名(形式参数表)
{
//函数体
}
(2)外联函数是指程序在编译时将函数的代码插入在函数的每个调用处,作为函数体的内部扩展,用来避免函数调用机制所带来的开销,提高程序的执行效率。全局函数和类的成员函数均可定义为内联函数。
内联成员函有两种定义方法:一种方法是在类定义体内定义成员函数,另一种是在类外使用inline关键字。

二.对象

对象是类的实例,是有数据及其操作所构成的封装体。对象是面向对象方法的主体。当一个对象映射为软件实现时,由以下三部分组成。

  • 私有的数据结构。用于描述对象内部状态。
  • 处理。也成为操作或方法,施加于数据结构之上。
  • 接口。是对象可被共享的部分,消息通过接口调用相应的操作。
    1.对象的定义
    (1)在定义类的同时直接定义。
class Location
{
private:
int x,y;
public:
void init(int x0,int y0);
int getX(void);
int gety(void);
}dot1,dot2;

(2)在使用时定义对象

类名 标识符,…,标识符;

2.成员的访问
访问的形式如下:
定义了类及其对象,就可以通过对象来访问公有成员,从而实现对对象内部属性的访问。对象对成员的访问形式如下:
对象名.公有成员名
当指向类类型的指针指向类对象后,可以用指向类对象来访问类成员,形式如下:
*对象指针名).公有成员名
或者
对象指针名->公有成员名

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

类和对象 的相关文章

  • 静态代码检查 - SourceInsight_Scan 使用说明

    SourceInsight Scan是一款集成在 SourceInsight 中的c c 代码静态分析插件 集成了cppcheck coverity pclint等业界优秀的静态分析工具的优点 旨在帮助开发人员 在IDE中快速发现编译器无法
  • 设计模式(六)适配器模式

    前面介绍的几种设计模式都是创建型模式 用于以不同的方式创建对象 下面我们来看看适配器模式 这是一种结构型模式 用于在两个无关的接口之间搭建桥梁 适配器模式主要用于在新旧代码直接转换 直接看例子吧 假设我们有一个音乐播放器 public in
  • 这些年我用过的软件

    文章目录 1 uTools 2 BCompare 3 Wireshare 4 Postman 5 Sourcetree 6 Another Redis Desktop Manager 7 XMind 8 逍遥模拟器 9 ScreenToGi
  • JavaScript的执行机制

    JavaScript的执行机制 在理解JavaScript 以下简称js 的执行机制之前 先要理解几个概念 js是单线程语言 为什么要将js设计为单线程 原因是js最初是专门为浏览器设计的 可以想象一下 如果js是多线程的 那么当你对同一个
  • Atom 和 markdown 基本使用

    Atom 和 markdown 基本使用 Atom 常用的快捷键 Cmd Shift P 打开命令窗口 可以运行各种菜单功能 Cmd T 快速的多文件切换 Ctrl G 文件内跳转到指定行 Cmd F 文件内查找和替换 Cmd Shift
  • selenium模拟登录爬取多页面vivio手机信息

    selenium模拟登录爬取多页面vivio手机信息 xpath进行数据解析 最终追加保存为csv形式 from selenium import webdriver from selenium webdriver common by imp
  • 【Docker】初识Docker以及Docker安装与阿里云镜像配置

    目录 一 初识Docker 二 安装Docker 三 Docker架构 四 配置Docker镜像加速器 一 初识Docker Docker是一个开源的应用容器引擎 诞生于2013年 基于Go语言实现 dotCloud公司出品 Docker开
  • java编程题检索一个字符串中出现元音字符长度最长是多少?

    java编程题 题目 给定一个字符串 返回最长元音字母字串长度 测试举例 输入为 asdbuiodea 输出为3 因为uio三个元音字姆是最长的 分析题目 可以理解为元音字母连续且最长 遍程思路 我个人是将用户输入的字符串和元音字符串分别转
  • 基于LSTM神经网络模型来预测股票的收益率

    一 项目背景以及目标 2 1 1项目背景 2 1 2项目目标 2 二 数据的准备 2 2 1数据说明 2 2 2数据探索和数据可视化 3 三 模型的选择 4 3 1 LSTM模型原理 4 3 2 LSTM模型工作原理 4 四 模型的训练 6
  • Feign GET方式传递多个参数

    Feign GET方式传递参数 单个参数 错误示例 FeignClient name demoFeignClient public interface DemoFeignClient RequestMapping value test me
  • C++ 中的指针使用

    1 指针的定义和声明 指针是一个变量 其值是一个内存地址 指向内存中的某个数据 指针变量的类型与它所指向的数据类型相同 在 C 中 指针的定义和声明方式如下 int p 定义一个指向 int 类型数据的指针变量 p double q 定义一
  • 一文了解什么是web3

    一 web1 0和web2 0 Web 1 0和Web 2 0指的是万维网历史上的时代 因为它通过各种技术和格式发展 Web 1 0 大致指的是从 1991 年到 2004 年期间 大部分网站由静态页面组成 绝大多数用户是内容的消费者 而不
  • win10 64位下载64位python

    下载步骤 1 打开Python官网 https www python org 如果是32位的可以直接点击download下载 否则点击downloads 点击windows 2 选择安装版本 eg 选择安装版 然后一直默认下一步 安装 期间
  • K8s存储管理——volume、pv、pvc

    目录 介绍 前言 emptyDir存储卷 hostPath存储卷 本地 NFS共享存储卷 PV PVC NFS使用pv pvc 介绍 来自官方文档 存储的管理是一个与计算实例的管理完全不同的问题 PersistentVolume 子系统为用
  • java基础——内存和变量

    目录 前言 一 java的内存 1 栈内存 2 堆内存 3 方法区内存 二 成员变量与局部变量 1 成员变量 2 局部变量 3 成语变量和局部变量的区别 前言 介绍Java的三种内存分配 栈 堆 方法区 成员变量和局部变量 一 java的内
  • 渗透漏洞 Bugku CTF-Web5

    Bugku CTF Web5 一 开启环境 点击链接 二 查看源代码 发现PHP弱类型 三 构造出 payload 提交获得 flag 一 开启环境 点击链接 二 查看源代码 发现PHP弱类型 1 PHP 比较 2 个值是否相等可以用 或
  • 神策学堂“训练营+特训营”,种子学员招募中,来一起出圈呀!

    2020 年难吗 难 失业 瓶颈 焦虑包围着互联网人 面对这个现状 神策学堂准备了一系列精品课程 芒种训练营 高级特训营 让大家逆流 出圈 神策数据分析芒种训练营 突破瓶颈 晋升高阶岗位 3 场直播 6 实战案例 教你用数据高效赋能业务 1
  • oracle数据库找不到主库,Oracle DG 主库丢失归档

    DG 主库丢失归档 主要原因就是备库没有APP呢 主库就误把归档删除了 常见的这种情况都是主库RMAN做备份的时候把归档删除了 丢失归档解决方法 用RMAN 增量备份恢复 还有恢复控制文件 备库 SQL gt select sequence
  • Centos7.4制作简易RPM包

    准备nginx 1 10 1 tar gz 准备php 7 1 7 tar bz2 这两个源码编译tar包 1 准备制作环境 yum y install rpm build 安装rpm build软件 rpmbuild ba xx spec
  • SpringSecurity最全实战讲解

    文章目录 Spring Security 专题 一 基本概念 认证 授权 会话 RBAC模型 二 一个自己实现的权限模型 BasicAuth 三 SpringBoot Security 快速上手 1 项目搭建步骤 2 用SpringBoot

随机推荐

  • AIF360入门教学

    1 AIF360简介 AI Fairness 360 工具包 AIF360 是一个开源软件工具包 可以帮助检测和缓解整个AI应用程序生命周期中机器学习模型中的偏见 在整个机器学习的过程中 偏见可能存在于初始训练数据 创建分类器的算法或分类器
  • MessageDigest(加密)

    MessageDigest类 MessageDigest 类是一个引擎类 它是为了提供诸如 SHA1 或 MD5 等密码上安全的报文摘要功能而设计的 密码上安全的报文摘要可接受任意大小的输入 一个字节数组 并产生固定大小的输出 该输出称为一
  • 使用 Cloudflare Zero Trust 通过 SSH 连接到 GitHub Actions 的 Runner 机器以进行调试

    GitHub Actions 的 Runner Images 包含了很多常用的开发环境 使用它来构建一些软件是很方便的 不过 构建过程难免会遇到问题 而在 GitHub Actions 上进行构建和在本地有很多不同之处 首先 Runner
  • 服务器装系统都会有哪些坑,小白装机避坑——电脑装系统篇 二

    装机系统分区 首先你需要安装好你的固态硬盘 开机 进入系统 一般用的分区工具都是 DiskGenius 这个软件 粗暴的组装 不需要机箱 一台电脑里面只能设置一个盘作为系统盘 也就是我们的主分区 切记 先对硬件进行测试组装 看看能不能正常启
  • 1125 斐波那契数列

    题目描述 输入整数n 输出斐波那契数列的前n项 输入要求 输入一个整数n 1 lt n lt 12 输出要求 输出斐波那契数列的前n项 每个数后面都有空格 输入样例 6 输出样例 1 1 2 3 5 8 提示 斐波那契数列的排列规则为 第1
  • echarts legend文字颜色

    legend textStyle color fft
  • 一个有意思的let面试题

    今天看到一个面试题 let des 我在外边 let obj des 我在里面 foo function console log this des let bar obj foo bar 这个bar 调用后会打印出什么 本以为是考 this
  • 查看微信小程序的appID和secret

    https mp weixin qq com wxopen devprofile action get profile token 1504304474 lang zh CN 转载于 https www cnblogs com fuckin
  • springmvc源码学习(三十)@ControllerAdvice 全局异常处理

    目录 前言 一 示例 二 原理 前言 在请求到达了 DispatcherServlet 的处理流程 进入 doDispatch 以及后续流程处理业务的过程中出现异常 会进入到 processDispatchResult 处理异常 此时 如果
  • C++-- 如何在类外访问一个类中私有的成员变量?

    如何在类外访问一个类中私有的成员变量 我在网上搜答案的时候看到大部分回答都是在类内部创建一个接口 所以此方法我就不再多做赘述 今天我说的是利用指针 边看代码边理解 上代码 class Test private int a 10 int b
  • win32汇编语言实现冒泡排序

    1 背景 现在大多数的大规模程序并不是由汇编语言来编写 原因很简单 因为太耗时了 但是汇编语言仍然被广泛运用在配置硬件设备以及优化程序的执行速度和尺寸大小等方面 特别是在逆向工程方面 更需要深入理解与熟练掌握汇编语言 针对现阶段 看汇编基本
  • unity04 解决导入fbx文件黑模问题

    左上角window gt rendering gt lighting gt new lighting settings gt 勾选auto generating
  • TensorFlow在MNIST中的应用-卷积神经网络CNN

    参考 TensorFlow技术解析与实战 用TensorFlow搭建一个卷积神经网络CNN模型 并用来训练MNIST数据集 coding utf 8 20171115 HelloZEX 卷积神经网络
  • 【软件测试】----自动化测试详解

    自动化测试指软件测试的自动化 在预设状态下运行应用程序或者系统 预设条件包括正常和异常 最后评估运行 结果 将人为驱动的测试行为转化为机器执行的过程 常见的自动化测试工具 QTP selenium Rational Robot jmeter
  • QtDesigner设计中关于PyQt5与pyside2的报错坑

    关注公众号可获取资料分享 0 前言 Qt Designer是使用Qt部件设计和构建图形用户界面 gui 的Qt工具 您可以以 what you see is what you get WYSIWYG 的方式组合和自定义窗口或对话框 并使用不
  • JSON取值(key是中文或者数字)方式详解

    先准备一个json对象用于演示 var json name zhangsan 年龄 23 404 你可能迷路了 使用JS中with关键字 with json console log name 输出 zhangsan console log
  • 基于STM32的智能电子药盒设计

    1 前言 据报告显示中国有2 3亿的60岁以上老人 占全国总人口的六分之一 在老年人中 有65 以上的老年人都是慢性病患者 其中失能和半失能老人将近四千万 并且人口还在以加速度增长 老年人的身体健康成为社会密切关注的问题 大部分的老年人都患
  • JavaScript基本包装类型

    基本包装类型 为了便于操作基本类型值 ECMAScript还提供了3个特殊的引用类型 Boolean Number和String 这些类型与其它引用类型相似 但同时也具有与各自的基本类型相应的特殊行为 实际上 每当读取一个基本类型值的时候
  • ElasticSearch-全文检索-简单使用

    简介 https www elastic co cn what is elasticsearch 全文搜索属于最常见的需求 开源的 Elasticsearch 是目前全文搜索引擎的首选 它可以快速地储存 搜索和分析海量数据 维基百科 Sta
  • 类和对象

    一 类 类描述了一组具有相同属性和行为特征的对象 对象是类的实例 类是一种数据类型 而对象是该类型的变量 在c 语言中 一个类的定义包含数据成员和成员函数两部分内容 数据成员定义该类对象的属性 不同对象的属性值可以不同 成员函数定义了该类对