当前位置: 首页 > news >正文

C++ const关键字

const

1. 修饰变量(包括函数参数 函数返回值)

const int v0 = 10;
v0 = 0; // error 不能修改const修饰的变量

2. 修饰指针

int v1 = 10; int v2 = 20; int v3 = 30;

2.1 常量指针

const 在指针左边,左定值,即不能通过指针修改该值

const int *pv1 = &v1;
*pv1 = 9; // error  不能通过指针修改值
v1 = 9; // ok
pv1 = &v2; // ok  可以修改指针的指向

2.2 指针常量

const 在指针右边,右定向,即不能改变指针的指向

int *const pv2 = &v2;
*pv2 = 19; // ok
pv2 = &v1; // error  不能修改指针的指向

3. 修饰引用

不能通过引用修改该值

const int &rv3 = v3;
rv3 = 29; // error  不能通过引用修改值

4. 修饰成员函数 

成员函数中其实隐藏了一个形参this指针,在函数被调用的时候,编译器会把对象的地址作为实参传递给this形参;

this指针本身就是一个指针常量,不允许修改其指向;

当成员函数用const修饰之后,相当于const修饰了this指针,那就变成了一个常量指针,不允许修改其指向的值;

即用const修饰之后的成员函数,只能访问成员变量,而不能做任何修改;

class AnyClass {
private:int val;
public:int GetVal() const {// 不能修改valreturn val;}
}

http://www.lryc.cn/news/448729.html

相关文章:

  • python爬虫案例——腾讯网新闻标题(异步加载网站数据抓取,post请求)(6)
  • LeetCode416:分割等和子集
  • 自定义异常注解处理框架
  • 【小程序】微信小程序课程 -3 快速上手之常用方法
  • iOS 小组件
  • 【2.使用VBA自动填充Excel工作表】
  • 算法记录——链表
  • EasyExcel实现百万数据批量导出
  • 兆易GD32E508的SHRTIM配置 主从定时器 产生2对相位可调互补PWM 带死区
  • 数据归组工具
  • JavaScript 中的闭包的形成及使用场景
  • 后端返回内容有换行标识,前端如何识别换行
  • 服务器被挂马,导致网站首页被更改怎么解决
  • Android 利用OSMdroid开发GIS
  • 一文上手skywalking【上】
  • 【JavaScript】JQuery基础知识及应用
  • 初始爬虫9
  • 从细胞到临床:表观组学分析技术在精准医疗中的角色
  • 带你0到1之QT编程:二十、QT与MySQL喜结连理,构建数据库应用开发
  • 梯度下降法及其性能评估
  • 906. 超级回文数
  • 代码随想录算法训练营||二叉树
  • 线上报名小程序怎么做
  • 【测试岗】手撕代码 - 零钱兑换
  • 菱形继承的类对父类的初始化、组合、多态、多态的原理等的介绍
  • React Native 在 build 的时候如果出现 `babel.config.js` 配置文件的错误
  • 【Linux】包管理器、vim详解及简单配置
  • AVL树实现
  • 初始MYSQL数据库(6)—— 事务
  • 0基础学习PyTorch——GPU上训练和推理