C++中const关键字无处不在,我这里做下汇总,作为工具文章方便翻阅。

一:修饰数据成员

修饰的成员一单定义初始化后不能再进行修改,如:

const int a = 10;

a =20; //重新赋值直接会报错

当修饰类的成员函数时,先来段错误的代码

class Student
{
public:
Student(int i)
{
this->age = i; //age是const类型直接复制会报错
}
private:
const int age;
};

解决上面的错误有两种方法

方法一:

使用参数列表的形式(推荐使用)

class Student
{
public:
Student(int i):age(i)
{
} private:
const int age;
};

方法二:

定义age时直接赋值

class Student
{
public:
Student (); private:
const int age = 20;
};

二:修饰成员函数

在声明之后,实现体之前

格式为:

类型 函数名(参数....) const

const修饰的成员函数不能修改类中的成员函数,函数中只能调用const修饰的函数。

class Student
{
public:
Student (int i ):age(i)
{ } void update () const
{
age = age +1; //const 修饰的成员函数不能修改类中的成员变量
display(); //const 修饰的成员函数,函数中只能调用const修饰的成员函数
} void display()
{
cout << "age:" << endl;
}
private:
int age;
};

三:修饰类对象

const修饰的对象,只能调用const修饰的成员函数

class Student
{
public:
Student (int i ):age(i)
{ } void update () const
{
cout << "this is update" << endl;
} void display()
{
cout << "age:" << endl;
}
private:
int age;
}; int main()
{
const Student stu(30);
stu.update();
stu.display(); //const修饰的类对象 只能调用const修饰的成员函数
return 1;
}

成员函数有无const修饰可以构成重载,非const对象调用时优先调用非const修饰的成员函数,如不构成重载也可以调用const修饰成员函数。

class Student
{
public:
Student (int i ):age(i)
{ } void display()
{
cout << "void display()" << endl;
} void display() const
{
cout << "display() const" << endl;
}
private:
int age;
}; int main()
{
Student stu(30);
stu.display(); return 1;
}

输出结果:

【C++札记】const关键字的更多相关文章

  1. PHP的final关键字、static关键字、const关键字

    在PHP5中新增加了final关键字,它可以加载类或类中方法前.但不能使用final标识成员属性,虽然final有常量的意思,但在php中定义常量是使用define()函数来完成的. final关键字 ...

  2. C++中const关键字的使用总结

    C++中使用const关键字来修饰常量,下面从两个方面总结:变量和成员函数. 变量:const可以修饰普通变量.指针(数组)和结构体. 1.const修饰普通变量是最简单的情形.这样的用法多为在程序中 ...

  3. final关键字+const关键字

    final关键字 1.如果我们希望某个类不被其它的类来继承(可能因为安全考虑),可以使用final. 例题 <? final class A{} class B extends A{};//会报 ...

  4. C++学习11 类和new、delete操作符 类与const关键字

    如果你是Java.C#.PHP程序员,那么会对 new 非常熟悉,在这些编程语言中,只能通过 new 来创建对象. 在C++中,你可以像定义变量一样来创建对象,如: Student stu; //对象 ...

  5. C++中的const关键字

    http://blog.csdn.net/eric_jo/article/details/4138548 C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方 ...

  6. 陈正冲老师讲c语言之const关键字

    1.const 关键字也许该被替换为 readolny const是constant的缩写,是恒定不变的意思,也翻译为常量.常数等.很不幸,正是因为这一点,很多人都认为被const修饰的值是常量.这是 ...

  7. C语言之头文件,static与const关键字

    [前言] 最近几个月在做一个C语言代码重构的项目,过程中也让我对之前在书本上学习到的东西有些补充和巩固,在本博中总结记录下,梳理下零碎的知识点和经验也加深印象,书写是为了更好地思考.平时也都是用印象笔 ...

  8. static和const关键字的作用

    static关键字至少有下列n个作用: (1)函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值: (2)在模块内的stat ...

  9. const关键字详解

    const在函数前与函数后的区别 一   const基础         如果const关键字不涉及到指针,我们很好理解,下面是涉及到指针的情况:         int   b   =   500; ...

随机推荐

  1. 解决最新版fitnesse无法运行测试用例的问题

    用fitnesse-standalone.jar这个jar包时 运行测试用例会报错,显示IOException:can not run program:”c:\program files\java\j ...

  2. C# 监控网速

    主要有两个类,其一是NetworkAdapter,该类的作用是获取本机网络适配器列表,并且可以通过该类的属性获取当前网速数据:其二是NetworkMonitor,该类是通过.NET的Performan ...

  3. If...else 条件判断和If else嵌套

    If(条件表达式){ 如果条件表达式结果为true,执行该处代码. 如果条件表达式结果为false,执行下边代码. }else{ 如果条件表达式结果为false,执行该处代码. } If(条件表达式) ...

  4. Python 08 skimage

    原文:https://www.cnblogs.com/xdjun/p/7874794.html 命令: pip install numpy pip install scipy pip install ...

  5. 【loj3120】【CTS2019】珍珠

    题目 ​ $laofu $出的题 ​ \(n\)个离散型随机变量\(X_i\)可能的值为\([1,D]\) ,求有至少\(m\)对的概率 ​ $0 \le m \le 10^9  ,  1 \le n ...

  6. web安全总结

    一.XSS 首先说下最常见的 XSS 漏洞,XSS (Cross Site Script),跨站脚本攻击,因为缩写和 CSS (Cascading Style Sheets) 重叠,所以只能叫 XSS ...

  7. go语言new和make

    1.new func new(Type) *Type 内建函数,内建函数 new 用来分配内存,它的第一个参数是一个类型,它的返回值是一个指向新分配类型默认值的指针! 2.make func make ...

  8. 【00NOIP普及组】计算器的改良(信息学奥赛一本通 1910)(洛谷 1022)

    [题目描述] NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能.实验室将这个任务交给了一个刚进入的新手ZL先 ...

  9. Hyperspectral Image Classification Using Similarity Measurements-Based Deep Recurrent Neural Networks

    用RNN来做像素分类,输入是一系列相近的像素,长度人为指定为l,相近是利用像素相似度或是范围相似度得到的,计算个欧氏距离或是SAM. 数据是两个高光谱数据 1.Pavia University,Ref ...

  10. 升级项目版本:SpringBoot1.5.x到SpringBoot2.0.x

    1.升级版本的选择 首先去spring的官网看一下最新的版本与版本之间的依赖