C++关键字之const
C++的const关键字一直让我很乱,这里把const关键字在程序中常用的三个地方分别总结出来:
1、 通过指针或引用访问普通变量
2、 通过对象调用成员函数,通过成员函数访问成员变量
3、 通过形参传递实参
const修饰指针、引用、普通变量(通过指针或引用访问普通变量)
|
非const变量 |
const变量 |
|
|
非const指针或引用 |
1、指针或引用能变指向 2、变量能变值 |
不合法 |
|
const指针或引用 |
1、指针或引用不能变指向 2、变量不能通过该指针或引用变值,但能通过其他方式变值 |
1、指针或引用不能变指向 2、变量不能变值 |
Const修饰类对象、成员变量、成员函数(通过对象调用成员函数,通过成员函数访问成员变量)
|
非const成员函数 |
const成员函数 |
||
|
非const对象 |
非const成员变量 |
可读取可修改 |
可读取不可修改 |
|
const成员变量 |
可读取不可修改 |
可读取不可修改 |
|
|
const对象 |
非const成员变量 |
const对象全部成员变量均为const的 |
|
|
const成员变量 |
const对象不能调用非const成员函数 |
可读取不可修改 |
|
Const修饰形参、实参(通过形参传递实参)
|
非const实参 |
const实参 |
||
|
非引用 |
非const形参 |
可接受 |
可接受 |
|
const形参(在函数中跟非const形一样,可修改) |
可接受 |
可接受 |
|
|
引用 |
非const形参 |
可接受(不接受字面值、表达式、需转换类型的) |
不合法 |
|
const形参 |
可接受 |
可接受 |
C++关键字之const的更多相关文章
- PHP的final关键字、static关键字、const关键字
在PHP5中新增加了final关键字,它可以加载类或类中方法前.但不能使用final标识成员属性,虽然final有常量的意思,但在php中定义常量是使用define()函数来完成的. final关键字 ...
- 关键字static/const的作用
static关键字的作用:(1)设置变量的存储域,函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值:(2)限制变量的作用域 ...
- c中常用的关键字static const volatile
在C语言中,关键字static有三个明显的作用:1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变.2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数 ...
- C++关键字(1)——const
1. const修饰普通变量和指针 const修饰变量,一般有两种写法: const TYPE value; TYPE const value; 这两种写法在本质上是一样的.它的含义是:const修饰 ...
- C++关键字之const(整理!)
C++ Code 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 ...
- C#readonly 关键字与 const 关键字的区别
1. const 字段只能在该字段的声明中初始化,readonly 字段可以在声明或构造函数中初始化.因此,根据所使用的构造函数,readonly 字段可能具有不同的值. 2. const 字段是编译 ...
- c# const与readonly 关键字的比较
C#中,const 与readonly是两个比较有用的关键字.const 与 readonly 定义的数据成员在初始化都不能再改变. 比如定义了 public class MathUtitlity ...
- readonly const关键字
readonly 关键字与 const 关键字不同. const 字段只能在该字段的声明中初始化. readonly 字段可以在声明或构造函数中初始化. 因此,根据所使用的构造函数,readonly ...
- JS let和const关键字
ES2015 引入了两个重要的 JavaScript 新关键词:let 和 const. Let关键字 1.用于作用域:块作用域,循环作用域,函数作用域,全局作用域, 在 ES2015 之前,Java ...
随机推荐
- Javascript和jQuery WordPress 图片轮播插件, 内容滚动插件,前后切换幻灯片形式显示
用于在有限的网页空间内展示一组产品图片或者照片,同时还有非常吸引人的动画效果.本文向大家推荐12款实用的 jQuery 图片轮播效果插件,帮助你在你的项目中加入一些效果精美的图片轮播效果,希望这些插件 ...
- nginx反向代理nginx,RealServer日志打印真实ip
title: nginx反向代理nginx,RealServer日志打印真实ip date: 2016-05-11 19:15:37 tags: --- nginx反向代理nginx,RealServ ...
- Tree( 树) 组件[2]
本节课重点了解 EasyUI 中 Tree(树)组件的使用方法, 这个组件依赖于 Draggable(拖动)和 Droppable(放置)组件.一. 异步加载如果想从数据库里获取导航内容, 那么就必须 ...
- C#基础语法总结
C#笔记——基础篇 一.入门知识 VS中的常用快捷键 Ctrl+K+D:快速对齐代码 Ctrl+Z:撤销 Ctrl+S:保存(一定要经常保存!) Ctrl+J:快速弹出智能提示 Shift+End . ...
- C# 计算日期时间的间隔天数
DateTime oldDate = ,,); DateTime newDate = DateTime.Now; // Difference in days, hours, and minutes. ...
- JS 匿名函数
一.声明: 1. 正常函数声明: //正常函数声明 function foo(p1, p2){ return p1+p2; } 2. 匿名函数声明: //匿名函数声明 var foo= functio ...
- 数据库元数据分析Demo
核心类:DatabaseMetaData.ResultSetMetaData 1 System.err.println("********************************** ...
- DOM 添加 / 更新 / 删除 XML (CURD)
获得Document /** * 获取文档 * 1.获得实例工厂 * 2.获得解析器 * 3.获得document */ 添加结点 /** * 1.获得 ...
- 成员函数的const不能被修改,包括指针
#include <iostream> class A { private: std::string a; public: A(std::string b) :a(b){} const c ...
- 《python基础教程》笔记之 元组
元组不能修改,创建语法很简单:使用逗号分隔了一些值,则自动创建了元组. >>> 1,2,3(1, 2, 3)>>> 1,(1,) 元组的节本操作同列表相同,除了没有 ...