const是constant的简写,是C++中极为常见且重要的关键字,主要功能是设置某些参数不可修改,今天对其用法进行总结记录。

一、在变量中的用法

  对变量进行修饰是const最基本的用法,const不仅可以修饰int,float等类型的变量,还能对指针变量进行修饰。
1.修饰普通变量
  在修饰普通变量时,在变量定义前面加上const即可。const变量在定义的时候要进行初始化,并且之后不能再给它赋值,否则会报错。

const int n = 10;   //标准写法
int const m = 10;   //与上面等价
n = 20;     //报错

2.修饰指针
  const修饰指针有两种三种用法:
      ①指针指向的数据是不可变的,指针指向了某块内存,那么这块内存的数据不可更改了。
      ②指针本身不可变,指针自身是一个地址,地址不可变,也就是指针的指向不可变。
      ③上面两种情况结合一下。

const int *p    //情况一
int const *p    //情况一
int * const p    //情况二
const int * const p   //情况三

  可以发现,const*和变量名称p之间的时候,意思是数据不能变,其他时候都是指针指向不能变。

二、在函数中的用法

  cosnt在函数中的主要用法:一是修饰输入形参,限制修改输入参数,当函数形参为指针类型变量,我们又不希望这个变量被修改,于是就可以用const对形参进行修饰;二是修饰输出变量,如果输出为指针变量,则无法修改。例子见成员函数那儿

三、在类中的用法

  const在类既可以修饰成员变量,也可以修饰成员函数本身,甚至还能修饰对象。
1. 修饰成员变量
  对成员变量的修饰与修饰普通变量差不多,都是设置为只读数据,但是有一点要注意,类中的const变量只能通过构造函数初始化列表进行初始化

using namespace std;class A{public:A(int a):m_a(a){}  //正常A(int a){       //报错m_a = a;}
private:const int m_a;
};
int main(){A A1(1);
}

2. 修饰成员函数
  首先,cosnt修饰成员函数,保留了const修饰普通成员的用法;其次,增加了在成员函数的声明后边添加cons的英法t,表示成员函数内部无法修改成员变量。例子:

#include <iostream>
using namespace std;class A {public:int a = 1;const int* show(const int* p) const ;
};const int* A::show(const int* p) const {a = 2;*p = 2;cout<<"a="<<a<<endl;cout<<"*p="<<*p<<endl;return p;
}int main(){A a;int c = 2;const int *b = &c;b = a.show(b);*b = &c;
}

注意:在函数声明处添加了const关键字,在类外定义的时候依然要带上。

要分清楚,普通函数有两个地方可以加const:输入和输出;而成员函数有三个地方可以加const:输入,输出以及函数尾。

3.修饰对象
  在实例化对象的时候,添加const关键字,就是const对象,const对象只能访问类中的const成员变量和const成员函数。

const  class  object(params);
const class *p = new class(params);  //两种用法等价

C++ const用法总结相关推荐

  1. php const用法详解

    php const用法详解 在编程中,我们一般用常量来定义那些在运行时不能被改变的常数值,下面让我们来看看php中的const吧,这个东西其 实没有什么好说的,只是为了知识的完善而随便说下吧.在定义一 ...

  2. C语言高频率--typedef和const用法详解

    一.typedef用法详解 C语言允许为一个数据类型起一个新的别名,就像给人起"绰号"一样. 起别名的目的不是为了提高程序运行效率,而是为了编码方便.例如有一个结构体的名字是 st ...

  3. C语言返回值是const类型,C++中const用法总结

    1.1.1. 定义普通常量 使用#define来定义常量也是常用方法,但const也可以用来定义常量,在[Effective C++]中建议使用const代替#define来定义常量,因为const定 ...

  4. 【C++】const 用法总结(非常实用)

    关键字 const 的用法在面试中出现的频率相当之高,但由于 const 用法非常多,时常遗忘,下面对 const 用法进行总结,算是做个笔记吧,方便日后学习!!! 1.const 用于定义常量 co ...

  5. C语言中const用法详解

    C语言中const用法详解 const修饰普通变量 const作用在于定义一个常量,比如const int a = 10,代表a的值不能被直接修改了,是一个常量,但仍可以通过指针的方式间接修改,如下图 ...

  6. typedef,static,const用法

    一.typedef主要功能是定义一个已存在类型的别名,但是和宏并存 宏与typedef区别 1.宏定义只是简单的字符串替换 2.typedef定义的类型是类型的别名,typedef后面是一个整体声明, ...

  7. C++ static与const用法详解

    目录 static的作用: 对普通变量: 1.局部变量: 2.全局变量 对类中变量: 1.成员变量 2.成员函数 const的作用: static的作用: 对普通变量: 1.局部变量: 在局部变量之前 ...

  8. java中finaljava中this_Java中this,static,final,const用法详解

    一.this 用类名定义一个变量的时候,定义的应该只是一个引用,外面可以通过这个引用来访问这个类里面的属性和方法,那们类里面是够也应该有一个引用来访问自己的属性和方法纳?JAVA提供了一个很好的东西, ...

  9. JS/ES6-var、let、const用法与区别

    目录 var的特点 1.作用域是全局作用域,没有块级作用域的概念 2.存在变量提升 let的特点 1.let声明的变量拥有块级作用域,let声明仍然保留了提升特性 2.let声明的全局变量不是全局对象 ...

  10. Const用法总结:Const,Const函数,Const变量,函数后面的Const (转)

    看到 const 关键字, C++ 程序员首先想到的可能是 const 常量.这可不是良好的条件反射.如果只知道用 const 定义常量,那么相当于把火药仅用于制作鞭炮. const 更大的魅力是它可 ...

最新文章

  1. Matlab计时函数的使用
  2. 妇产科2020年发表的SCI论文大数据分析
  3. ibatis解决sql注入问题
  4. Java的String类是上帝的对象吗?
  5. 35个让人惊讶的 CSS3 动画效果演示
  6. MacOS中安装Consul(启动及关闭)
  7. go语言 字符串处理
  8. java遍历文件夹并复制文件到指定目录
  9. Shiro:初识Shiro及简单尝试
  10. vue3.0中使用echarts
  11. Pr零基础入门指南笔记四
  12. ad19原理图标注_Altium Designer 19绘制stm32最小系统原理图库及原理图
  13. ubuntu中安装微信
  14. 高大上的数据可视化图表,只需6步就能完成
  15. 计算机无法设置壁纸黑屏,电脑界面为什么无法换壁纸 一直黑屏 但有图标
  16. 云原生(什么是云原生?云原生的四要素)
  17. 手机微信小程序服务器出错,处理微信服务接口返回的错误信息《 微信小程序:微信绑定 #6 》...
  18. 414 Request-URI Too Large
  19. Regex.Replace( )
  20. R7-如果一个字符串是 另一个字符串的重新排列组合,那么这两个字符串互为变位词。比如,”heart”与”earth”互为变位 词,”Mary”与”arMy”也互为变位词。输入格式:第一行输入第一个字符

热门文章

  1. 已知法线,两向量夹角和一向量,求另一向量
  2. pip list 报错
  3. 如何成为优秀软件设计师
  4. 亓琳〆Lutte╰→羋孖ゝ
  5. Vue具名插槽的使用说明
  6. 生理期健康系列(一)
  7. 拜耳加大在华投资,启动处方药北京工厂产能提升项目
  8. R语言与数据分析——【笔记】2.R语言数据存储与读取
  9. ideal的maven项目不小心remove module,如何找回
  10. 图普科技AI智能赋能审核|数字出版内容审核发展趋势的显现