Effective C++ Item 3 尽可能使用const

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie


const 出现在*左边指const data,出现在*右边指const pointer
	char greeting[] = “Hello”;
	char *p = greeting; 				//non-const pointer, non-const data
	const char *p = greeting; 			//non-const pointer, const data
	char *const p = greeting;			//const pointer, non-const data
	const char *const p = greeting 		       //const pointer, const data


声明常量迭代器和所指物是常量的迭代器
	std::vector<int> vec;
	const std::vector<int>::iterator iter = vec.begin();            //iter的作用像个T *const
	*iter = 10                              			//ok. 改变iter所指物
	++iter;                                          		//error. iter是const
	const std::vector<int>::const_iterator cIter = vec.begin();     //cIter的作用像个const T *
	*cIter = 10                                                     //error. *cIter是const
	++cIter;                                                        //ok. 改变cIter


将返回值声明为const,避免它被当作左值,成员函数声明为const,确认该成员函数可作用于const 对象
class Rational {…};
const Rational::operator *(const Rational *lhs, const Rational *rhs) const
参数声明为const,避免它修改
成员函数声明为const,确认该成员函数可作用于const 对象(const对象只能调用const 成员)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值