博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
条款03 尽可能使用const
阅读量:6496 次
发布时间:2019-06-24

本文共 592 字,大约阅读时间需要 1 分钟。

一、概述

使用const约束对象:可以获得编译器的帮助(指出相关出错的地方)

const与成员函数:const重载、转型、避免代码重复

 

二、细节

1. 为什么有些函数要返回const对象(看上去没必要)?

返回const对象:a * b = c;  //operator*()函数返回一个const对象,故该表达式错误

补充:我们的本意或许是a * b == c,此时返回const是没影响的,故返回const可以预防“没意思的赋值动作”

2. const成员函数不能避免对象被更改的情况

mutable成员变量可以更改,即使在const成员函数内

3. 两个成员函数因const相互重载,而函数体内代码重复

我们可以令non-const版本调用const版本,来避免代码重复

class A {public:	const char &operator[](size_t pos) const	{		...		return text[pos];	}	char &operator[](size_t pos)	{		return const_cast
(static_cast
(*this)[pos]); }};

  

 

转载于:https://www.cnblogs.com/xzxl/p/7845645.html

你可能感兴趣的文章
关于网站的一些js和css常见问题的记录
查看>>
zabbix-3.4 触发器
查看>>
换用代理IP的Webbrowser方法
查看>>
【视频编解码·学习笔记】7. 熵编码算法:基础知识 & 哈夫曼编码
查看>>
spark集群安装部署
查看>>
解析大型.NET ERP系统 设计异常处理模块
查看>>
匹夫细说C#:委托的简化语法,聊聊匿名方法和闭包
查看>>
java: web应用中不经意的内存泄露
查看>>
cassandra命令
查看>>
讨论JDK的File.equal()
查看>>
unity替换mesh测试
查看>>
使用自定义材质球,实现NGUI屏幕溶解和灰显
查看>>
解决eclipse ctrl+鼠标左键不能用
查看>>
java对cookie的操作
查看>>
C++vector迭代器失效的问题
查看>>
在Web.config或App.config中的添加自定义配置
查看>>
php源码安全加密之PHP混淆算法.
查看>>
Linux 虚拟内存和物理内存的理解【转】
查看>>
PHP PSR-1 基本代码规范(中文版)
查看>>
【 Gym - 101138J 】Valentina and the Gift Tree(树链剖分)
查看>>