effective C++ 条款三 解读

条款三 尽可能的使用const

const 的主要用途可以分为三个方面:

1.用于修饰指针

2.const迭代器

3.函数声明时的应用(返回值  参数  函数自身)

用于修饰指针 能够区分一下代码:

char greeting[]="Hello";
char* p=greeting;
const char* p=greeting;
const char* const p =greeting;
用于const迭代器的意思就是vector<int>::const_iterator it; it不能修改容器的值。

用于函数声明时的应用:

1.const 成员函数,对于const成员函数我们必须明白的几个点 :

带const与不带const 的同名同参函数能够构成重载。

const 成员对象只能调用const成员函数,不能调用non-const成员函数。

const成员函数不能修改对象内任意non-static成员变量。

以一段代码来解释const成员函数的作用:

class TextBook
{
public:
    const char& operator[](size_t position) const
{
    return text[position];
}
    char& operator[](size_t position)
{
    return text[position];
}
private:
string text;
}
TextBook tb("Hello");
tb[0]='x';//调用的是非const版本的函数
const TextBook tb("Hello");//不能对其调用tb[0]='x'
上面同时阐述了,返回值是const的作用。

当我们在const成员函数中必须修改成员变量的时候,编译器就会报错,但是如果我们非要修改那种变量,那么变量前面我们要加mutable关键词。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值