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成员规则的主要内容,如果未能解决你的问题,请参考以下文章