常变量、常函数和常对象与静态函数

常变量

声明形式

  1. const <数据类型> 变量名;
  2. <数据类型> const 变量名;

特点

任何函数都不能对常数据成员赋值。(只读性)
构造函数对常数据成员进行初始化时也只能通过初始化列表进行。(只能被初始化)
如果类有多个默认构造函数必须都初始化常数据成员。
不能对常数据成员在类中初始化、要通过类的构造函。

常函数

声明形式

<类型标志符>函数名(参数表)const

特点

  1. const是函数类型的一部分,在实现部分也要带该关键字。
  2. const关键字可以用于对重载函数的区分。
  3. 常成员函数不能修改任何数据成员,也不能调用该类中没有用const修饰的成员函数,只能调用常成员函数和常数据成员。但可以被其他函数调用

常对象

声明形式

const <类名> <对象名>
<类名> const <对象名>

特点

  1. 常对象一定要初始化
  2. 不能通过常对象调用非常成员函数,但可以通过非常对象调用常成员函数