【C++】C++中的关键字:const、mutable、auto、new....

2024-09-04 21:12

本文主要是介绍【C++】C++中的关键字:const、mutable、auto、new....,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

七、C++中的关键字:const、mutable、auto、new、

本部分打算是尽量多的罗列出C++中的关键字和一些花式操作。先总结一下我们之前讲过的:
private、public、protect: 参考【C++】类、静态、枚举、重载、多态、继承、重写、虚函数_静态与多态:重写、重载、模板-CSDN博客中的第5小标题,可见性。
static: 参考【C++】类、静态、枚举、重载、多态、继承、重写、虚函数_静态与多态:重写、重载、模板-CSDN博客 中的第7个小标题
virtual、override:参考【C++】类、静态、枚举、重载、多态、继承、重写、虚函数_静态与多态:重写、重载、模板-CSDN博客 中的第13、14小标题

1、const关键字

const是一个限定修饰符,表示承诺某个对象不能改变,是强制开发人员写代码时的一个规则,也就是语法上的一个规则。所以它在生成二进制代码方面是什么也没做的。只是在源代码中一旦你用const修饰了,你就得遵守,否则编译阶段就报错。也所以,const只是编译阶段的一个承诺而已,程序执行时也可能就不信守这个承诺了。所以const有时也称伪关键字。

(1)const修饰常量
在讲常量部分,有一个叫常变量的,就是就是用const限定一个常量,就变成常变量了。而且还展示了一个如何绕过承诺,修改一个const对象的例子,可以参考:【C++】深度理解C++数据类型:常量、变量、数组、字符串、指针、函数_c++ 字符串常量-CSDN博客 中的第一个小标题。

(2)const修饰指针

这部分也非常好理解,不理解的可以翻看指针部分。

(3)const在类中或者在方法中


上图的BCDE和FG都是多态。

小结:const用在类的方法中,一般都是这个方法声明不改变类的其他东西,就是读读,不修改的。这样做的目的就是让类外的函数更加方便快捷的调用这个类方法。如果类外的函数使用常量指针或者常量引用调用这个类方法,就不用拷贝参数了,效率就大大提升了。

(4)const修饰类实例
上面的例子理解了,这里就非常好理解了:

2、mutable关键字
mutable是字面意思是可改变的,immutable是不可改变的、无法改变的。
mutable有两种不同的用法:一种是和上面的const进行搭配使用;另一种是用在lambda表达式中。

(1)mutable和const搭配
前面讲const出现在类方法中时,表示这个类方法不能改变类中其他变量。但是如果这个类方法必须得改变类中的某些变量,而且它还想是个const方法时,就得用mutable关键字来修饰那个被改变得变量。numtable就相当于是const的逆或返。下面用两个小例子说明:

(2)mutable用在lambda表达式中

mutable用在lambda表达式中不是特别常见。尽量少用吧。

3、auto关键字
实例如上图。

4、new关键字:创建动态对象
有名字的对象都是静态对象。
没有名字的对象是动态对象,需要程序员使用new和delete来显式的创建和释放,动态对象存放在堆上。

待补充 。。。。

 

这篇关于【C++】C++中的关键字:const、mutable、auto、new....的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1137046

相关文章

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

C++ Primer 多维数组的使用

《C++Primer多维数组的使用》本文主要介绍了多维数组在C++语言中的定义、初始化、下标引用以及使用范围for语句处理多维数组的方法,具有一定的参考价值,感兴趣的可以了解一下... 目录多维数组多维数组的初始化多维数组的下标引用使用范围for语句处理多维数组指针和多维数组多维数组严格来说,C++语言没

c++中std::placeholders的使用方法

《c++中std::placeholders的使用方法》std::placeholders是C++标准库中的一个工具,用于在函数对象绑定时创建占位符,本文就来详细的介绍一下,具有一定的参考价值,感兴... 目录1. 基本概念2. 使用场景3. 示例示例 1:部分参数绑定示例 2:参数重排序4. 注意事项5.

使用C++将处理后的信号保存为PNG和TIFF格式

《使用C++将处理后的信号保存为PNG和TIFF格式》在信号处理领域,我们常常需要将处理结果以图像的形式保存下来,方便后续分析和展示,C++提供了多种库来处理图像数据,本文将介绍如何使用stb_ima... 目录1. PNG格式保存使用stb_imagephp_write库1.1 安装和包含库1.2 代码解

C++实现封装的顺序表的操作与实践

《C++实现封装的顺序表的操作与实践》在程序设计中,顺序表是一种常见的线性数据结构,通常用于存储具有固定顺序的元素,与链表不同,顺序表中的元素是连续存储的,因此访问速度较快,但插入和删除操作的效率可能... 目录一、顺序表的基本概念二、顺序表类的设计1. 顺序表类的成员变量2. 构造函数和析构函数三、顺序表

使用C++实现单链表的操作与实践

《使用C++实现单链表的操作与实践》在程序设计中,链表是一种常见的数据结构,特别是在动态数据管理、频繁插入和删除元素的场景中,链表相比于数组,具有更高的灵活性和高效性,尤其是在需要频繁修改数据结构的应... 目录一、单链表的基本概念二、单链表类的设计1. 节点的定义2. 链表的类定义三、单链表的操作实现四、

使用C/C++调用libcurl调试消息的方式

《使用C/C++调用libcurl调试消息的方式》在使用C/C++调用libcurl进行HTTP请求时,有时我们需要查看请求的/应答消息的内容(包括请求头和请求体)以方便调试,libcurl提供了多种... 目录1. libcurl 调试工具简介2. 输出请求消息使用 CURLOPT_VERBOSE使用 C

C++实现获取本机MAC地址与IP地址

《C++实现获取本机MAC地址与IP地址》这篇文章主要为大家详细介绍了C++实现获取本机MAC地址与IP地址的两种方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 实际工作中,项目上常常需要获取本机的IP地址和MAC地址,在此使用两种方案获取1.MFC中获取IP和MAC地址获取

C/C++通过IP获取局域网网卡MAC地址

《C/C++通过IP获取局域网网卡MAC地址》这篇文章主要为大家详细介绍了C++如何通过Win32API函数SendARP从IP地址获取局域网内网卡的MAC地址,感兴趣的小伙伴可以跟随小编一起学习一下... C/C++通过IP获取局域网网卡MAC地址通过win32 SendARP获取MAC地址代码#i

C++中使用vector存储并遍历数据的基本步骤

《C++中使用vector存储并遍历数据的基本步骤》C++标准模板库(STL)提供了多种容器类型,包括顺序容器、关联容器、无序关联容器和容器适配器,每种容器都有其特定的用途和特性,:本文主要介绍C... 目录(1)容器及简要描述‌php顺序容器‌‌关联容器‌‌无序关联容器‌(基于哈希表):‌容器适配器‌:(