C++const成员规则

Posted 善良超锅锅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++const成员规则相关的知识,希望对你有一定的参考价值。

越来越讨厌C++了,一个简单的const成员变量都搞得这么麻烦。

概念:const成员变量、const成员函数、const类变量

  • const成员变量是初始化后就不能再改变的。在整个过程中都始终如一。素以不允许有赋值操作。
  • const成员函数是保证不会修改成员变量的成员函数。
  • const类变量是指声明一个类变量时使用了const,比如const A a;

意义:

const成员变量保证一个变量的值永远不变。 const成员函数保证永远不会改变类的状态。(永远不会修改变量的值)


规则:

规则一:

const成员变量只能在构造函数的初始化列表中初始化,不能在构造函数体内赋值。否则会产生只读数据的写错误。

规则二:

const成员变量不能出现任何赋值操作。

规则三:

非const成员函数和const成员函数都可以读访问非const类变量的const或非const成员变量。

规则四:

非const成员函数不可以访问const类变量的任意成员变量。只有const成员函数可以。

规则五:

const成员函数中不允许有任何对成员变量的赋值操作。(保证其不会修改成员变量值)

规则六:

const成员函数不能调用非const成员函数。(还是为了保证不会修改成员变量值,天知道你调用的非const成员函数会干什么)


价值观:(这些能帮助你理解记忆)

const变量:我是永恒的,任何赋值操作都是对我的侮辱。(规则一二)

const成员函数:所谓瓜田不纳履,李下不整冠,我懂得避嫌(规则五);而且我任人唯信,那些没有const认证的家伙有好有坏,我不能信任它们。我知道它们中间可能有好人,但得排除风险不是吗?(规则六)  

const类变量:我出生时就打上了const的高贵印记,我只能做出高尚的行为。(规则四)



实现原理:待续。。。

以上是关于C++const成员规则的主要内容,如果未能解决你的问题,请参考以下文章

读书印记 - 《新经济,新规则》

C/C++中各个位置的const关键字

C/C++中各个位置的const关键字

C++_const 常量成员以及成员初始化列表及其常量类

C++_const 常量成员以及成员初始化列表及其常量类

C++_const 常量成员以及成员初始化列表及其常量类