码迷,mamicode.com
首页 > 编程语言 > 详细

C++中关于const的一些使用惯例

时间:2015-07-11 16:52:41      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:const

最近在公司使用C++做项目,对工作中发现的问题进行总结!

大家都知道,C++的const关键字是申明一个常量,以前没有深入接触C++的时候也没觉得有什么特别的用法。

下面说说我最近工作中发现的关于const的一些使用惯例,我这里所说的使用惯例,是指C++编码中推荐的做法。

1)函数中的const参数
我们可能会看到类似这样的一个函数声明:
void copy(const string& strDestination, const string& strSource);
上面的函数实现将字符串strDestination拷贝到strSource的功能。
有人说我不用const修饰参数也可以呀,没有什么大不了的。

但是在实践中,如果类成员函数不修改其参数的值,且参数类型为指针、引用或者数组的时候,我们一般都会将其参数声明为const。

这样做有什么好处呢?好处就是如果形参是const类型的话,我传递给函数的实参是const类型或者非const类型的都可以。
如果你的程序中形参是非const类型,但是你要传递一个const类型的实参过去,是编译不过的。你必须使用const_cast关键字转化,或者声明一个非const的同类型变量。

2)const函数
我们可能见过这样的函数申明:
void fun() const
在函数的后面加一个const就是const函数,这说明该成员函数不会修改类成员变量的值。

这样做有什么好处呢?如果这个函数不声明为const函数,那该方法只有非const对象能够调用,const对象是不能调用的。

所以在实践中,如果成员函数不修改成员变量,我们一边将该函数声明为const函数。

总之,需要知道的是C++中同一类型加上const和不加const书不同的类型!

版权声明:本文为博主原创文章,未经博主允许不得转载。

C++中关于const的一些使用惯例

标签:const

原文地址:http://blog.csdn.net/theonegis/article/details/46841971

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!