C++ const相关内容学习
const
作用
- 修饰变量,说明变量不可以被修改
- 修饰指针,分为指向常量的指针(pointer to const)和自身是常量的指针(常量指针,const pointer)
- 修饰引用,指向常量的引用(reference to const),用于形参类型,即避免了拷贝,又避免了函数对于数值的修改
- 修饰成员函数,说明该成员函数内不能修改成员变量
const指针和引用
指针
- 指向常量的指针 (pointer to const)
- 自身是常量的指针 (const pointer)
引用
- 指向常量的引用 (reference to const)
- 没有const reference,因为引用本身就是const pointer
被const修饰,(在const的后面)的数值不可以修改
// 类
class A
{
private:const int a; // 常对象成员,只能在初始化列表赋值public:// 构造函数A() : a(0) { };A(int x) : a(x) { }; // 初始化列表// const可用于对重载函数的区分int getValue(); // 普通成员函数int getValue() const; // 常成员函数,不得修改类中的任何数据成员的值
};void function()
{// 对象A b; // 普通对象,可以调用全部成员函数、更新常成员变量const A a; // 常对象,只能调用常成员函数const A *p = &a; // 指针变量,指向常对象const A &q = a; // 指向常对象的引用// 指针char greeting[] = "Hello";char* p1 = greeting; // 指针变量,指向字符数组变量const char* p2 = greeting; // 指针变量,指向字符数组常量(const 后面是 char,说明指向的字符(char)不可改变)char* const p3 = greeting; // 自身是常量的指针,指向字符数组变量(const 后面是 p3,说明 p3 指针自身不可改变)const char* const p4 = greeting; // 自身是常量的指针,指向字符数组常量
}// 函数
void function1(const int Var); // 传递过来的参数在函数内不可变
void function2(const char* Var); // 参数指针所指内容为常量
void function3(char* const Var); // 参数指针为常量
void function4(const int& Var); // 引用参数在函数内为常量// 函数返回值
const int function5(); // 返回一个常数
const int* function6(); // 返回一个指向常量的指针变量,使用:const int *p = function6();
int* const function7(); // 返回一个指向变量的常指针,使用:int* const p = function7();
C++ const相关内容学习相关推荐
- 音频处理相关内容学习——自动编码器——变分自动编码器——频谱图
文章目录 概述 一.Approaches And Challenges 生成的声音是什么类型 训练模型使用的是什么特征 原始音频Raw Audio 频谱图Spectrograms 声音生成模型常用的结 ...
- Gazebo相关内容学习
什么是Gazebo和ros,以及二者的关系? Gazebo是一个不错的仿真工具,它使用物理引擎模拟真实的世界,使得我们可以通过仿真的方式从原理上验证算法,计算负载和受力情况,进而指引我们做结构和算法的 ...
- ROS 命令以及相关内容学习(二)
在上一节中我们已经学习了package node topic message 这些的运行方式,下面我们去理解service 的运行方式. 1.sevice 1 #命令 2 rosservice lis ...
- Android屏幕保护KeyguardManager相关内容学习
前阵子收到客户要求,要做一款安卓手机和平板上使用的屏保,其实蛮奇怪的,电脑用屏保倒是见得多了,可是手机不使用的时候关掉屏幕不就OK了吗?话说现在的智能手机电池都不耐用的可怜,还装屏保岂不是很费电.原来 ...
- DNS相关内容学习笔记1
记录dns协议学习中的一些内容,全程无图. 目录 DNS简介 DNS查询过程 DNS缓存 DNS劫持 DoH基本原理 Firefox开启DoH DNS报文格式 DNS几个关键字段 DNS类型字段 DN ...
- Maven相关内容学习笔记一:基本配置和使用
首先必须推荐的这本书<Maven实战> 许晓斌,机械工业出版社 Maven简介 其实使用Maven也有很久时间了,大部分都是别人建好了工程我使用一下,实际上并没有非常详细的使用经验,这次到 ...
- let/const相关内容(五)
1.块级作用域的应用 (一)if-switch-for代码中的应用 ① if语句的代码就是块级作用域 // if语句的代码块是块级作用域 if (true) {var foo = "foo& ...
- 学习图神经网络相关内容
本周学习情况 本周学习任务: 学习图神经网络相关内容 图基本知识(连通分量.度中心性.特征向量中心性.中介中心性.接近中心性.PageRank.HITS)并使用networkx包简单实践. 学习了相关 ...
- 数据挖掘课程学习——序列模式发现相关内容调研
数据挖掘课程学习--序列模式发现相关内容调研 本次实验完成"序列模式发现"的相关内容调研,主要内容包括:什么是序列模式发现:应用在哪些领域:经典的算法有哪些:应用在怎样的数据上:得 ...
最新文章
- [转载]在线文档预览方案-Office Web Apps
- ant的下载与安装——mybatis学习笔记之预备篇(一)
- 【AT987】高橋君【组合数】【莫队】
- 【TensorFlow】稀疏矢量
- 大学专业:这4个计算机类专业很受欢迎,毕业后薪资待遇高?
- 中国慕课java_回收的吸油毡通常应放置一边以备再次使用。
- 用Python编写干净 可测试 高质量的代码
- mysql 把主键当外键_MySQL主键和外键使用及说明
- C#基础知识之读取xlsx文件Excel2007
- ACM算法设计---BFS、DFS
- 让我们在网页中实现数据库的增删改查~
- 在阿里做了五年技术主管,我有话想说
- 用C语言画空心三角形
- 使用ipad通过usb线连接电脑
- linux一台服务器上装两个mysql数据库
- 用于CFD的国内3D城市模型获取方法
- qpython3l最新版下载_qpython3l
- SolidWorks如何编辑今日制造插件生成的齿轮
- 每日统计部门人员考勤打卡情况并汇总通知
- 使用ROS驱动激光雷达YDLIDAR-G4的详细过程总结(教你避开使用的各种坑....)
热门文章
- linux编程参数列表,Linux编程 14 文件权限(用户列表passwd,用户控制shadow,useradd模板与useradd命令参数介绍)...
- maven依赖 spark sql_window环境运行spark-xgboost 8.1踩到的坑
- 未来计算机论文1500,致未来的自己作文1500字
- html多出的空白页怎么删除,word多出一页空白页怎么删除,这4个方法总有一个能解决,真实挂机网赚项目...
- hive 窗口函数_Datatist科技专栏 | Hive排序窗口函数速学教程!
- 【转】DICOM命令集和数据集解析!!
- 【转】Dynamics CRM:“the given key was not present in the dictionary”
- SharePoint无代码工作流设计开发实例——交通费报销流程(三)
- 34观察者模式(Observer Pattern)
- [你必须知道的.NET]第十回:品味类型---值类型与引用类型(下)-应用征途