C++中怎么使用default

发布时间:2021-11-26 13:34:15 作者:iii
来源:亿速云 阅读:647

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

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”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

推荐阅读:
  1. vue中export和export default的使用
  2. C#中default指的是什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++ default

上一篇:NLTK安装获取nltk_data时遇到getaddrinfo failed错误怎么办

下一篇:C#如何实现基于Socket套接字的网络通信封装

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》