- const出现在星号左边,表示被指物为常量(不可以通过指针改变指向的地址的内容),出现在右边表示指针自身是常量(不可以改变指向的地址,但是可以修改指向的地址的内容),两边都有const表示被指物和指针自身都是常量。
- 令函数返回一个const,往往可以降低因客户错误而造成的意外,而又不至于放弃安全性和高效性。例如
a * b = c
这种就可能造成不可预料的结果。 - 将const实施于成员函数的唯一作用就是给该函数操作const对象的权限。这可以提高程序效率。需要注意的是,将函数设定为const需要在函数名后边加const,例如
char& operator[](std::size_t position) const
- 在成员函数设定为const的规则上,bitwise_const和logical_const两种观点对编译器的运行都产生了强大的作用。根据bitwise_const的观点,const成员函数不能对变量进行任何修改(不能对成员变量赋值),但是还是可以通过返回成员变量的地址来使用其他方式进行修改。根据logical_const的观点,一个const成员函数在客户端侦测不出的情况下可以修改它所处理的对象内部的某些成员变量。
- 当const和non-const成员函数有着实质等价的实现时,令non-const版本调用const版本可避免代码重复。反向调用是禁止使用的,因为non-const函数可以对成员变量做任何事,但是const受到了很大的限制,因此反向调用所造成的后果是不可预测的。
条款03:尽可能使用const
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...