C++ Primer Plus 第10章 对象和类

2023-11-01

第10章 对象和类
思维导图

在这里插入图片描述

1.OOP特性和相关概念
1.1 接口

接口是一个共享框架,由编写类的人提供的方法组成,使得程序能够使用类对象。

在这里插入图片描述

1.2 抽象

类的公共接口就是对类的抽象

1.3 用户定义类型

构成基本类型的要素:

决定数据对象需要的内存数量;存储

决定如何解释内存中的位;(long和float在内存中占用的位数相同,但是将其转化为数值的方法不同)

决定操作数据对象的方法;

C++中,用户定义类型就是指实现了抽象接口的类设计。

1.4 类规范

类声明:以数据成员的方式描述数据部分,以函数成员的方式描述公有接口。

类方法定义:描述如何实现类成员函数。

类声明提供了类的蓝图,方法定义提供了细节。

1.5 访问控制

关键字private、public描述了对于类成员的访问控制,类对象的默认访问控制是private。

使用类对象的程序都可以直接访问类的公有部分;使用类对象的程序必须通过类的公有部分间接访问类的私有成员。

类的公有部分包括公有成员函数友元函数;类的公有部分可以直接访问类的私有成员。

类的公有部分构成了公共接口,是使用类的程序和私有成员之间的桥梁。

类的私有成员无法被程序直接访问,使得数据被隐藏。

在这里插入图片描述

1.6 数据隐藏

防止程序直接访问数据称为数据隐藏

数据隐藏的优点:

1.保护数据,防止程序直接访问数据,对数据进行不适当的修改

2.方便复用,隐藏实现细节,使用时只需调用接口

3.便于维护,实现细节与接口分离,修改细节时无需改变接口,修改调用程序时无需改变实现细节

1.7 封装

将实现细节放在一起,并将它们与抽象分开称为封装。

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

C++ Primer Plus 第10章 对象和类 的相关文章

  • 在 LINQ 查询中返回不带时间的日期

    我正在编写一个查询 我想计算按日期联系我们的呼叫中心的次数 看起来很简单 但由于联系日期字段是日期时间字段 我得到了时间 因此当我按联系日期 时间 分组时 每个联系日期实例的计数为 1 所以 我想只按日期分组 而不按时间分组 下面是我用来查
  • 自动从 C# 代码进行调试过程并读取寄存器值

    我正在寻找一种方法来读取某个地址的 edx 注册表 就像这个问题中所问的那样 读取eax寄存器 https stackoverflow com questions 16490906 read eax register 虽然我的解决方案需要用
  • fgets() 和 Ctrl+D,三次才能结束?

    I don t understand why I need press Ctrl D for three times to send the EOF In addition if I press Enter then it only too
  • 如何在我的应用程序中使用 Windows Key

    Like Windows Key E Opens a new Explorer Window And Windows Key R Displays the Run command 如何在应用程序的 KeyDown 事件中使用 Windows
  • 为什么禁止在 constexpr 函数中使用 goto?

    C 14 对你能做什么和不能做什么有规则constexpr功能 其中一些 没有asm 没有静态变量 看起来相当合理 但标准也不允许goto in constexpr功能 即使它允许其他控制流机制 这种区别背后的原因是什么 我以为我们已经过去
  • 如何在 WPF RichTextBox 中跟踪 TextPointer?

    我正在尝试了解 WPF RichTextBox 中的 TextPointer 类 我希望能够跟踪它们 以便我可以将信息与文本中的区域相关联 我目前正在使用一个非常简单的示例来尝试弄清楚发生了什么 在 PreviewKeyDown 事件中 我
  • c 中的错误:声明隐藏了全局范围内的变量

    当我尝试编译以下代码时 我收到此错误消息 错误 声明隐藏了全局范围内的变量 无效迭代器 节点 根 我不明白我到底在哪里隐藏或隐藏了之前声明的全局变量 我怎样才能解决这个问题 typedef node typedef struct node
  • .Net Core / 控制台应用程序 / 配置 / XML

    我第一次尝试使用新的 ConfigurationBuilder 和选项模式进入 Net Core 库 这里有很多很好的例子 https docs asp net en latest fundamentals configuration ht
  • 为什么模板不能位于外部“C”块内?

    这是一个后续问题一个答案 https stackoverflow com questions 4866433 is it possible to typedef a pointer to extern c function type wit
  • Windows 窗体不会在调试模式下显示

    我最近升级到 VS 2012 我有一组在 VS 2010 中编码的 UI 测试 我试图在 VS 2012 中启动它们 我有一个 Windows 窗体 在开始时显示使用 AssemblyInitialize 属性运行测试 我使用此表单允许用户
  • 初始化变量的不同方式

    在 C 中初始化变量有多种方法 int z 3 与 int 相同z 3 Is int z z 3 same as int z z 3 您可以使用 int z z 3 Or just int z 3 Or int z 3 Or int z i
  • 网络参考共享类

    我用 Java 编写了一些 SOAP Web 服务 在 JBoss 5 1 上运行 其中两个共享一个类 AddressTO Web 服务在我的 ApplycationServer 上正确部署 一切都很顺利 直到我尝试在我的 C 客户端中使用
  • C 中的位移位

    如果与有符号整数对应的位模式右移 则 1 vacant bit will be filled by the sign bit 2 vacant bit will be filled by 0 3 The outcome is impleme
  • 可空属性与可空局部变量

    我对以下行为感到困惑Nullable types class TestClass public int value 0 TestClass test new TestClass Now Nullable GetUnderlyingType
  • 在 URL 中发送之前对特殊字符进行百分比编码

    我需要传递特殊字符 如 等 Facebook Twitter 和此类社交网站的 URL 为此 我将这些字符替换为 URL 转义码 return valToEncode Replace 21 Replace 23 Replace 24 Rep
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • 方法参数内的变量赋值

    我刚刚发现 通过发现错误 你可以这样做 string s 3 int i int TryParse s hello out i returns false 使用赋值的返回值是否合法 Obviously i is but is this th
  • 在 ASP.NET 中将事件冒泡为父级

    我已经说过 ASP NET 中的层次结构 page user control 1 user control 2 control 3 我想要做的是 当控件 3 它可以是任何类型的控件 我一般都想这样做 让用户用它做一些触发回发的事情时 它会向
  • Bing 地图运行时错误 Windows 8.1

    当我运行带有 Bing Map 集成的 Windows 8 1 应用程序时 出现以下错误 Windows UI Xaml Markup XamlParseException 类型的异常 发生在 DistanceApp exe 中 但未在用户

随机推荐

  • Axure RP软件安装包分享(附安装教程)

    目录 一 软件简介 二 软件下载 一 软件简介 Axure RP是一款专业的原型设计工具 它能够帮助用户创建高保真度的交互式原型 Axure RP具有以下特点 强大的交互设计功能 Axure RP提供了丰富的交互设计工具 用户可以通过拖拽和
  • Linux-僵尸进程产生与处理

    目录 背景 产生 处理方法 方法一 父进程通过wait或者wait pid方式回收子进程 方法二 信号处理signal 改进版 背景 父进程创建子进程之后 父进程没有等待该子进程的退出 子进程就会成为僵尸进程 如果父进程也退出 这个时候子进
  • F28027第八课---ADC操作解读

    已经有三天没有写了 心里真过意不过 但最近确实真的太忙了 大家见谅 前面那几节课 我们基本上把F28027自身的特性了解了一下 从这节课开始 我们将要学习它的外设 我的目标是周末这两天 要把ADC 温度 比较器 ePWM SPI都了解完 并
  • Bode Plots by Hand 徒手绘制波特图

    https blog csdn net u011368821 article details 26759659
  • USDT/DAPP授权原理/USDT接口实现

    一 安装需求 AAA com bbb com ccc com 需要三个域名 1 安装环境 a 服务器 centos7以上 软件商店 b nginx1 2以上 c php7 3版本 c1 安装php扩展 redis和gmp c2 删除所有ph
  • 接单日记(二)SMTP发送邮件

    文章目录 接单日记 二 SMTP发送邮件 一 实验目的 二 实验内容 三 程序及结果 1 运行程序 2 运行结果 接单日记 二 SMTP发送邮件 此为一个实验报告 故遵守实验报告的格式 一 实验目的 熟悉SMTP发送邮件的原理 使用SMTP
  • Docker基础修炼2--Docker镜像原理及常用命令

    通过前文的讲解对Docker有了基本认识之后 我们开始进入实战操作 本文先演示Docker三要素之镜像原理和相关命令 本文的演示环境仍然沿用上一篇文章在本地Centos7中安装的环境 如果你本地没有搭建Docker环境 也可以直接使用前文提
  • CMake 学习笔记 (Generator Expressions)

    CMake 学习笔记 Generator Expressions Generator Expressions 可以认为是一种特殊的变量 它会在编译阶段求值 通常用在 target link libraries target include
  • 基数排序-------C语言实现

    其他排序 堆排序 归并排序 插入排序和希尔排序 快速排序 冒泡排序和选择排序 基数排序 前备知识 注 我们知道 对于一个数如果我们想获取它得个位 只需对10取余 想获取十位的数 可以除10然后再对10取余 获取百位除100然后再对10取余
  • 网站服务器ip地址在哪里改,网站服务器ip地址在哪里改

    网站服务器ip地址在哪里改 内容精选 换一换 成功访问网站包含以下两个阶段 这两个阶段缺一不可 需要同时成功才能正常访问网站 如图1所示 阶段一 DNS根据访问请求中的域名解析出对应的IP地址 阶段二 访问网站服务器IP获取网站内容 阶段一
  • spring使用AOP技术对DAO层操作进行增强功能

    AOP的概述 1 什么是AOP的技术 在软件业 AOP为Aspect Oriented Programming的缩写 意为 面向切面编程 AOP是一种编程范式 隶属于软工范畴 指导开发者如何组织程序结构 AOP最早由AOP联盟的组织提出的
  • 10.Docker容器镜像体积缩小之奇技淫巧

    文章目录 0x00 前言简述 0x01 基础环境 0x02 Docker 最佳实践补充 0x03 镜像体积缩减实战 1 奇技淫巧构建镜像体积减小 99 2 FROM scratch 的魔力 0x04 补充说明 openjdk镜像的tag说明
  • vue-cli3.0引入高德3d动画效果方法一:

    前言 因为两个方法代码量都特别大 这里分2个页面详细说一下 这个页面是方法一 包括vue cli3 0中使用和html中使用两种示例 注意 这里有想看另一种方法的童鞋请点入口 https blog csdn net qq 41619796
  • VuePress在Node.js高版本报digital envelope routines::unsupported错误的解决方法

    前言 本篇在讲什么 博主之前使用Node js的版本时10 几 如今更新系统到Win10后 之前的项目在编译的时候碰到了错误digital envelope routines unsupported 提高阅读体验 一级标题 二级标题 三级标
  • Python 学习第一天 感谢嵩天老师

    Hello World I 描述 这是学习每种程序设计语言的第一个实例 输出Hello World 注意大小写 print Hello World
  • HTTPS原理

    前置知识 在阅读本文章之前需要知道什么是哈希 什么是对称加密 什么是非对称加密 什么是数字证书 什么是数字签名 什么是数字证书 Digital Certificate 什么是数字签名 Digital Signature codereasy的
  • 【计算机毕业设计】基于微信小程序的高校实验室管理系统 基于微信小程序的实验室预约系统

    毕设帮助 源码交流 技术解答 见文末 一 前言 高校实验室是进行教学 科研 创新与实践的重要基地 其建设与管理水平直接关系到人才培养的质量问题 随着国家中长期发展纲要的颁布以及对高等教育的大量投入 高校实验教学与科学研究条件得到根本性改善
  • RocektMQ社区"每周直播分享第6期"如约而至

    分享题目 RocketMQ路由机制与联通性交互设计原理 直播方式 钉钉群直播方式 群号 21791227 分享时间 2019 01 10 20 00 21 30 本周四 内容简介 源码分析RocketMQ Topic路由机制与NameSer
  • GoLand系统当前时间的前一天或后一天

    前一天 curTime time Now 获取系统当前时间 h fmt Sprintf dh 24 减去24小时 前一天 dh time ParseDuration h timeStr curTime Add dh Format 20060
  • C++ Primer Plus 第10章 对象和类

    第10章 对象和类 思维导图 1 OOP特性和相关概念 1 1 接口 接口是一个共享框架 由编写类的人提供的方法组成 使得程序能够使用类对象 1 2 抽象 类的公共接口就是对类的抽象 1 3 用户定义类型 构成基本类型的要素 决定数据对象需