成都网站建设设计

将想法与焦点和您一起共享

C++中怎么使用default

本篇内容介绍了“C++中怎么使用default”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

创新互联网站建设公司是一家服务多年做网站建设策划设计制作的公司,为广大用户提供了做网站、网站制作,成都网站设计,1元广告,成都做网站选创新互联,贴合企业需求,高性价比,满足客户不同层次的需求一站式服务欢迎致电。

ES.79:使用default处理一般case

Reason(原因)

Code clarity. Improved opportunities for error detection.

代码清晰性。增加发现错误的机会。

Example(示例)

enum E { a, b, c , d };

void f1(E x)
{
   switch (x) {
   case a:
       do_something();
       break;
   case b:
       do_something_else();
       break;
   default:
       take_the_default_action();
       break;
   }
}

Here it is clear that there is a default action and that cases a and b are special.

可以清晰地看出存在一个默认case,而a和b是特殊case。

Example(示例)

如果就是没有默认动作,你只想处理特殊case时应该怎么做呢?这种情况下,保留一个空的默认处理,否则不可能知道你是否意图处理所有case。

void f2(E x)
{
   switch (x) {
   case a:
       do_something();
       break;
   case b:
       do_something_else();
       break;
   default:
       // do nothing for the rest of the cases
       break;
   }
}

如果漏掉了default,维护者或者编译器可能会合情合理的假设你意图处理所有case。

void f2(E x)
{
   switch (x) {
   case a:
       do_something();
       break;
   case b:
   case c:
       do_something_else();
       break;
   }
}

你是忘记了case d还是故意遗漏的?忘记一个case通常发生在增加枚举值之后却没有为所有switch语句增加针对该值的处理的时候。

Enforcement(实施建议)

标记针对枚举类型的、没有处理所有枚举值并且不包含default处理的switch语句。对于某些代码这种做法可能会产生太多的假阳性;如果发生这种情况,只标记处理了大部分case但不是全部case的情况(这正是很早期的C++编译器采用的策略)。

“C++中怎么使用default”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


网站标题:C++中怎么使用default
标题网址:http://chengdu.cdxwcx.cn/article/ghodsj.html