inline、const、mutable、this、static

news/2024/10/14 0:01:15

inline、const、mutable、this、static

在类定义中实现成员函数 incline

成员函数末尾的 const(声明和实现中都要加上 const)

作用:告诉系统,这个成员函数不会修改该对象里任何成员变量的值等等,也就是说,这个成员函数不会修改类 Time的任何状态。===> 也叫做常量成员函数

mutable(不稳定、容易改变)===> 突破 const 限制

使用 mutable 修饰一个成员变量 ===> 说明这个成员变量永远处于可以被修改状态,即便是在 const 修饰的成员函数中,也可以修改

返回自身对象的引用、this

//  int m
//  int& n = m
//  n 相当于 m 的一个绰号,对 n 的操作就是对 m 的操作Time& Time::getTimeObject(int tmpHour){Hour += tmpHour;    return *this;   //  把对象自己给返回去了
}

调用

//  如何理解这个 this
//  咱们调用成员函数时,编译器负责把这个对象的地址(&myTime) 传递给这个成员函数中的一个隐藏的 tihs 形参
//  this 指针只能在成员函数中使用,全局函数以及静态函数都不能使用 this指针
//  a. 在普通成员函数中,this是一个指向非 const 对象的 const 指针(类型为 Time,那么 this 就是 Time* const this),表示 this 只能指向当前 Time 对象
//  b. 在 const 成员函数中,this是一个指向 const 对象的 const 指针(类型为 Time,那么 this 就是 const Time* const this)
//  注意:第一个 const:代表值不能改,第二个 const:代表只能指向这个对象Time myTime;
Time& time = myTime.getTimeObject(11);

static成员

调用方式:

  • 类名::成员变量名
  • 类名::成员函数名

如何定义静态成员变量(分配内存):一般会在某个.cpp 文件中开头定义这个静态成员变量,这样就能保证在调用任何函数之前,这个静态成员变量已经成功初始化了

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

吴恩达机器学习笔记(2-1到2-7)

吴恩达机器学习笔记(2-1到2-7) https://www.bilibili.com/video/BV164411b7dx?p=5 https://www.bilibili.com/video/BV164411b7dx?p=6 https://www.bilibili.com/video/BV164411b7dx?p=7 https://www.bilibili.com/video/BV164411b7dx?p=8 https://www.bilibili.com/vide…

网络安全问题

Linux:在配置Centos7时,刚开始yum不能使用,原因是它默认使用的是自带的yum源,但是这个yum源很不稳定 解决方法:将其换成国内源yum的配置文件在/etc/yum.repos.d/CentOS-Base.repo当中,我们将其切换成阿里云镜像使用这个语句:curl -o /etc/yum.repos.d/CentOS-Base.repo …

分布式事务之Seata的AT模型

在Seata的事务管理中有三个重要的角色:TC (Transaction Coordinator) - 事务协调者:维护全局和分支事务的状态,协调全局事务提交或回滚。 TM (Transaction Manager) - 事务管理器:定义全局事务的范围、开始全局事务、提交或回滚全局事务。 RM (Resource Manager) - 资源管理…

【蓝队】Sysmon识别检测宏病毒

原创 玄影实验室 权说安全前言 在不断变化的网络安全环境中,提前防范威胁是非常重要的。 本文将以 Microsoft Office 宏病毒钓鱼为例,介绍如何使用 Sysmon 来获取和分析 Windows 系统日志,揭示隐藏的恶意或异常活动,了解入侵者和恶意软件如何在网络上运行。 Sysmon Sysmon(…

vue2进阶篇:vue-router之命名路由

vue2进阶篇:vue-router之命名路由@目录10.6命名路由案例:将案例改为“命名路由”完整代码本人其他相关文章链接 10.6命名路由注意点1: 命名路由请使用name属性,替换掉path属性的作用,且name直接指定名称即可,而path必须指定3级目录(path=’/demo/test/welcome’)才行。…

Github和git的学习(不定期更新)

学习GitHub和git的使用,不定期更新学习GitHub和Git 可以使用 GitHub 和 Git 来开展工作协作。[官方文档直达]([GitHub 入门文档 - GitHub 文档](关于 Git - GitHub 文档)) 关于 GitHub GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在…

学期2024-2025-1 学号20241424 《计算机基础与程序设计》第4周学习总结

学期2024-2025-1 学号20241424 《计算机基础与程序设计》第4周学习总结 作业信息 |这个作业属于(2024-2025-1-计算机基础与程序设计)| |-- |-- | |这个作业要求在(2024-2025-1计算机基础与程序设计第四周作业| |这个作业的目标|<写上具体方面>参考上面的学习总结模板,…

Python 禅道测试用例助手

程序及源码下载地址: https://gitee.com/ishouke/zen-tao-testcase-helper 实现功能 禅道测试用例助手。 实现xmind用例导入禅道,支持自动创建产品,模块,删除用例,此外,支持禅道导出的excel用例转xmind用例之后,再导入禅道,实现禅道用例管理闭环 使用要求 适配xmind版本…