const修饰成员函数

2023-11-17

常函数:

  • 成员函数后加const后,我们称这个函数为常函数
  • 在常函数内不可以修改成员的属性
  • 成员属性声明时加关键字mutable后,在常函数中依然可以修改

常对象:

  • 声明对象前加const称该对象为常对象
  • 常对象不能在类外修改其成员属性(但可以修改mutable修饰的成员属性)
  • 常对象只能调用常函数

示例:

1)常函数

原理:因为this指针的本质是指针常量,指向的是当前对象的内存地址,在一般函数中相当于Person *const this,即无法修改指针的值,但是在常函数前有一个const,所以在常函数里this指针相当于const Person *const this,是一个常量指针常量,即既不可以修改指针的值,也不可以修改指针指向的内存空间的内容,所以在常函数中自然无法修改成员变量了.

对指针常量和常量指针常量不是很理解的同学可以看一下:常量指针、指针常量和常量指针常量

2)常对象

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

const修饰成员函数 的相关文章

  • 如何声明静态方法 和 实现?

    如何声明静态方法 和 实现 在 C 中 声明和实现静态方法 静态成员函数 与普通成员函数有一些区别 静态方法属于类本身 而不是类的对象 因此在声明和实现时需要特殊的语法 声明静态方法 在类的声明中 通过在函数原型前面添加关键字 static
  • cuda nms

    int YoloLayerPlugin nms fun int batch size void inputs void const outputs size t count int detections per im float nms t
  • C++,引用和指针

    引用指的是对什么的引用 是地址引用吗 这不和指针一样吗 引用 Reference 是C 中一种特殊的变量类型 它可以被看作是对另一个变量的别名 即某个变量的引用 引用不是地址引用 它是在语法层面提供的一种更直观 更安全的方式来访问和修改其他
  • 【千律】C++基础:宽窄字节字符串的相互转换与控制台输出

    方案1 include
  • Cpp学习——string(2)

    目录 编辑 容器string中的一些函数 1 capacity 2 reserve 3 resize 4 push back 与append 5 find系列函数 容器string中的一些函数 1 capacity capacity是str
  • c# 位运算符

    说来惭愧 今天看别人提供的源码 看了这些运算符竟然有些记不起来 在这里就记录一下 首先认识这些运算符 按位与 其实与 逻辑运算符有一致的地方 下面会讲到 按位或 同样与 有类似的地方 按位取反 按位异或 lt lt 左移运算符 gt gt
  • 为什么C++有多种整型?

    C 中有多种整型是为了满足不同的需求 提供更灵活和高效的整数表示方式 不同的整型具有不同的字节大小 范围和精度 可以根据应用的需求选择合适的整型类型 以下是一些原因解释为什么C 有多种整型 内存和性能优化 不同的整型在内存中占用的空间不同
  • C++项目:Json_parser

    我的json parser generator 我的json parsergenerator 我的json parsergenerator 功能简介 1 解析器部分 2 生成器部分 3 测试部分 部分实现 1整体框架 1json value
  • 配置setting.json解决vscode和vim按键冲突

    vim 对于需要经常使用的vscode中的复制 粘贴 剪切 全选 查找和新建等 在vim正常模式下是不可用的 不过可以在配置文件中取消vim handleKeys键位映射 即保留这些原始按键功能 对于上述可能存在和正常按键冲突 可以通过设置
  • c#10(密封类和密封方法,异常)

    密封类和密封方法 异常 一 密封类 密封类可以用来限制扩展性 如果密封了某个类 则其他类不能从 该类继承 如果密封了某个成员 则派生类不能重写该成员的实现 默认情况下 不应该密封类和成员 密封可以防止对库的类型和成员进行自定义 C 中使用密
  • virtualenv: error: unrecognized arguments: --no-site-packages

    使用virtualenv version 看到自己的版本大于20 就可以将如下这段删除 export VIRTUALENVWRAPPER VIRTUALENV ARGS no site packages 我碰到的情况下 user makef
  • 【千律】C++基础:类定义和类实现的分离

    类定义就是指定义类名 是 h文件 类实现是指对类定义的具体实现 是 cpp文件 下面是Student h中的内容 pragma once include
  • 在C++中 ,什么时候用:: ?什么时候用. ?什么时候用->?

    在C 中 什么时候用 什么时候用 什么时候用 gt 在 C 中 和 gt 是三种不同的运算符 用于访问类 结构体 命名空间 指针等的成员 它们的使用场景如下 作用域解析运算符 用于访问命名空间的成员或静态成员 例如 假设有一个命名空间 My
  • C++ - Vector 计算 均值(mean) 和 方差(variance)

    C Vector 计算 均值 mean 和 方差 variance 代码 double sum std accumulate std begin resultSet std end resultSet 0 0 double mean sum
  • Unable to correct problems, you have held broken packages无法安装libignition-math6-dev

    sudo apt get install libignition math6 dev 出现错误 Reading package lists Done Building dependency tree Reading state inform
  • C++的文件操作open与close

    先看一下相应的打开文件的不同参数的作用 C open 打开文件 含打开模式一览表 打开模式可以用多个 但符号是 不是 注意啦 比如 ios in ios binary表示用二进制模式 以读取的方式打开文件 ios out ios binar
  • C++四种类型转化

    文章目录 static cast const cast reinterpret cast 重新解释 dynamic cast static cast 该运算符把expression转化为type name类型 static cast在编译时
  • STL标准模板库学习笔记三(STL哈希容器)

    关联式容器 排序 的底层实现采用的树存储结构 更确切的说是红黑树结构 无序容器 哈希 的底层实现采用的是哈希表的存储结构 基于底层实现采用了不同的数据结构 因此和关联式容器相比 无序容器具有以下 2 个特点 无序容器内部存储的键值对是无序的
  • Cpp学习——类与对象3

    目录 一 初始化列表 1 初始化列表的使用 2 初始化列表的特点 3 必须要使用初始化列表的场景 二 单参数构造函数的隐式类型转换 1 内置类型的隐式类型转换 2 自定义类型的隐式类型转换 3 多参数构造函数的隐式类型转换 4 当你不想要发
  • C++函数模板与类模板

    目录 C 模板定义 函数模板 类模板 类模板的定义 模板的优缺点 模板的优点 模板的缺点 C 模板定义 C 模板允许程序员在通用编程中创建可重用的代码 这种编程技术基于模板的编

随机推荐

  • 【经典】markdown编辑器手册

    这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题 有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一个表格 设定内容居中 居左 居右 Sma
  • ubuntu 查看端口占用命令

    查看端口占用情况 netstat nultp
  • Android开发中访问服务器常用到的response.getStatusCode()的值各代表什么

    response getStatusCode 200 代表请求成功 response getStatusCode 303 代表重定向 response getStatusCode 400 代表请求错误 response getStatusC
  • 访问方法access method---单表访问方法(三十六)

    上篇文章回忆了innodDB的独立表空间和系统表空间的结构 因为需要梳理的知识点太多 所以额外用一篇 独立表空间 系统表空间总结 innoDB表空间 三十五 单表的访问方法 对我们开发来说 mysql就是个软件 用sql查询我们需要的数据
  • 基于布谷鸟算法结合灰狼算法求解最优目标

    基于布谷鸟算法结合灰狼算法求解最优目标 在本文中 我们将介绍如何使用布谷鸟算法和灰狼算法的组合来求解最优目标问题 我们将提供相应的MATLAB代码 以便读者可以直接实现和测试这种算法组合的效果 布谷鸟算法 Cuckoo Search Alg
  • 使用Git Bash从Git上下载代码到本地以及上传代码到码云Git

    前提是已经安装了GitBash 这个稍后再出教程 1 新建一个目录 存放下载下来的项目 我在D盘新建了一个 gitspace 文件夹 用来存放下载下来的项目 2 进入刚刚新建的文件夹 即进入 gitspace 点击鼠标右键 选择 Git B
  • 2021年国家平均工资出炉,你又被平均了吗?

    近期 国家统计局发布2021全国平均薪资 IT业年平均工资突破20万位于榜首 分行业门类看 IT行业年平均工资私营 非私营均位列第一 年平均工资最高的3个行业分别是信息传输 软件和信息技术服务业201506元 科学研究和技术服务业15177
  • Django基础入门⑧:Django路由详细讲解

    Django基础入门 Django路由 Django路由 路由分发函数 反向解析 反向解析应用 使用url标签实现反向解析 reverse 函数实现反向解析 reverse 函数简析 命名空间namespace 个人简介 以山河作礼 Pyt
  • mysql常用日期时间/数值函数

    author skate time 2013 05 16 1 日期时间函数 时间转化秒函数 time to sec mysql gt select time to sec 01 01 01 time to sec 01 01 01 3661
  • 将数组以逗号拼接_javascript将数组拼接成一个字符串

    这里记录下在JavaScript中如何将数组拼接成一个字符串 所谓的将数组拼接成一个字符串 意思就是将数组中的元素逐个拼接到一个字符串中 并加以特定的分隔符 在JavaScript中可以有两种方式 一种是Array对象提供的join 方法
  • Mysql-表关系多对多设计

    多对多 如 订单 和 商品 一个商品对应多个订单 一个订单包含多个商品 实现方式 建立第三张中间表 中间表至少包含两个外键 分别关联两方主键 DROP TABLE tb order DROP TABLE tb goods DROP TABL
  • C++ 引用

    引用变量是一个别名 也就是说 它是某个已存在变量的另一个名字 一旦把引用初始化为某个变量 就可以使用该引用名称或变量名称来指向变量 引用和指针 引用很容易与指针混淆 它们之间有三个主要的不同 不存在空引用 引用必须连接到一块合法的内存 一旦
  • MinGW-w64下载文件失败the file has been downloaded incorrectly

    文章目录 前言 必读 1 问题背景 2 报错原因 3 解决方案 前言 必读 笔者强烈推荐使用 linux平台 搭建C 环境所需的东西 如果是用windows平台 则会出现很多小问题 或者即使安装好了 程序跑起来的时候仍会有问题 如果是单纯想
  • The Raft Group [naming_instance_metadata] did not find the Leader node;caused: The Raft Group

    1 异常信息 caused errCode 500 errMsg do metadata operation failed caused com alibaba nacos consistency exception Consistency
  • 安装MySQL(无管理员权限)

    Install MySQL without administrator permission Step 1 Download https cdn mysql com Downloads MySQL 5 7 mysql 5 7 24 win3
  • “echo 0 > /proc/sys/kernel/hung_task_timeout_secs“ disables this message

    现象 主机无缘无故死机 主机上服务无响应 日志出现大量 echo 0 gt proc sys kernel hung task timeout secs disables this message 日志输出信息 分析 echo 0 gt p
  • Future异步

    Future异步是Java中常用的异步编程方式之一 它能够在代码执行过程中返回一个代表未来结果的Future对象 使得程序能够在等待结果的同时继续执行其他操作 本文将从Future异步的定义 使用方法和优缺点等方面对其进行详细介绍 一 Fu
  • Qt信号发送过快,槽函数处理不过来解决方法

    问题 跨线程使用信号与槽连接 信号的发送时间间隔小于槽函数处理的时间间隔 造成的问题 子线程下的槽函数 用sleep来模拟槽函数的耗时操作 void MyThread myTimeout qDebug lt lt test QThread
  • 矩阵转置代码,速度优化

    今天心血来潮 想写个CPU版本的矩阵转置代码 过几天写GPU版本的 按照我的想法 就是以下几种方式 1 gt 整块矩阵转置 横读纵写或纵读横写 2 gt 将矩阵分成固定大小的block block与block可以分成横读纵写或纵读横写 而b
  • const修饰成员函数

    常函数 成员函数后加const后 我们称这个函数为常函数 在常函数内不可以修改成员的属性 成员属性声明时加关键字mutable后 在常函数中依然可以修改 常对象 声明对象前加const称该对象为常对象 常对象不能在类外修改其成员属性 但可以