越来越讨厌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的高贵印记,我只能做出高尚的行为。(规则四)
实现原理:待续。。。
时间: 2024-10-18 06:52:45