C++

C++数据保护之const

const的使用总结

Posted by Anriku on July 10, 2018

前言

今天的博客我们来对const的使用以及注意细节做一下总结。

const一般在下面的地方使用

  • 在对象前面使用声明为常对象(基本类型和常对象差不多)
  • 在函数后面使用声明为常函数
  • 在引用前使用声明为常引用

#常对象

常对象的数据成员值在对象的整个生命周期中是不能被改变的。因此,常对象必须进行初始化,而且不能被更新

const 类型说明符 对象名;//const也可以放在类型说明符后面

常对象注意点

  • 不能通过常对象修改对象中的数据成员
  • 不能通过常对象调用对象的非常函数

常成员函数

在函数的后面加上const使其成为常成员函数

类型说明符 函数名(参数列表) const;

常成员函数注意点

  • const是函数类型的一个组成部分,我们在函数定义的时候也需要带上const关键字
  • 在常成员函数中不能修改数据成员,不能调用非常成员函数(其实普通对象在调用常成员函数的时候也被视为了常对象)
  • const关键字可以用于对重载函数区分。如果这样进行重载,我们在用非const对象进行函数调用的时候会选择调用没有带const的函数。

常数据成员

在数据成员前加上const使其成为常数据成员。

常数据成员的注意点

  • 常数据成员此时只能通过初始化列表来初始化。
  • 静态常数据成员也必须要进行初始化。但是静态常数据成员的初始化有两种方式
    • 在类外进行初始化
    • 直接在类中定义的时候进行初始化

常引用

在引用前使用const进行修饰

const 类型说明符 &引用名;

常引用的注意点

  • 常引用引用的对象不能被更新
  • 非常引用只能引用非常对象,而常引用两个都可以引用
  • 非常引用无论引用的是常对象还是普通对象都将其作为常对象处理。其性质和常对象一样