是" object.EnumConstant"而不是" Class :: EnumConstant"代码味道?

时间:2016-01-07 13:00:28

标签: c++ coding-style enumeration

我有这样的代码

void disconnect(control::lib::DisconnectReason reason) {
   if(reason.getCode() == reason.C_Abnormal) {
     ...
   }
}

这是代码味吗?我从来没有见过人们这样做,但通常是通过类名访问枚举常量。但这导致了长名,在我的情况下

if(reason.getCode() == control::lib::DisconnectReason::C_Abnormal) {

在这里做什么更好?

1 个答案:

答案 0 :(得分:0)

这不是问题。就像您可以使用.->访问类静态变量一样,您可以以相同的方式访问枚举名称,它不应该被使用.(或{{1 }})表明这个变量/名称是调用者对象的成员,在这些情况下不是这样。