Effective C++条款03解读:尽可能使用const

本文通过示例阐述了在C++编程中使用const关键字的重要性,尤其是在提高程序健壮性和可读性方面的作用。文章强调了const可以有效避免运行时错误,并推荐遵循Effective C++中的建议尽可能使用const。

        我对const还是有点感触的, 每次看到这样的代码, 我巴不得把代码作者揪出来问个究竟:

 

#include <iostream>
using namespace std;

int main()
{
	char *p = "bad";

	return 0;
}

       代码的作者丝毫没有意识到问题所在么? 那你看看这个代码:

 

 

#include <iostream>
using namespace std;

int main()
{
	char *p = "bad";  // danger !!!!!!

	// ...


	// ...


	char c;
	scanf("%c", &c);

	if('x' == c) 
	{
		cout << "if" << endl;
		*p = '\0';
	}

	// ...

	return 0;
}

       当c为'x'的时候, 上述程序会出现运行错误(编译器根本检查不出来)。 如果用const char *p = "abc"; 那就是编译期错误了, 编译器强迫程序员修改。
 

 

 

        我之前说过了, char *p = "bad";会导致运行期错误, 而且有时候是概率性的, 有可能造成整个系统的崩溃, 非常难以定位, 而如果用const char *p = "bad";就好多了, 最多是编译器的错误, 非常容易定位并修改。 在这个场景下, 有const的优点是:

        1. 如果有错, 那也是编译期间错误,非常容易定位, 而且编译器强迫程序员修改。

        2. 错误不会到运行期, 不会有概率性恼火的问题, 用户自然也不会抱怨了。

        具体的详细论述, 请参考我之前的博文:http://blog.csdn.net/stpeace/article/details/42615901

 

         除了上述健壮性之外, 加上const会增强程序的可读性, 程序员不需要提心吊胆地担心某一变量/对象是否会改变, 关于这一点, 我在如下博文中也论述并举证过:http://blog.csdn.net/stpeace/article/details/45349757

 

         所以, 在Effective C++中, 作者Scott Meyers指出:尽可能使用const.  也就是说, 能用const的地方, 该用const的地方, 都用const吧。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值