在Qt中避免非符号常量

时间:2016-05-09 22:06:18

标签: c++ qt

我参与的代码审核经常出现的一件事是代码中的“魔术数字”内联是一件坏事。

首选项是在某处指定符号。

现在我正在使用的是QT sdk。类成员QButtonGroup.checkedId()将返回-1作为幻数,表示所选组中没有单选按钮。

如果我写了类似

的内容
if ( buttongroup->checkedId() == -1 )
{
   //yadda yadda
}

它将出现在代码审查中。

虽然我当然可以定义一个const static int符号来给我-1,但如果它有一个相关的常量,我宁愿在Qt命名空间中使用一些东西。

是否已经定义了这样的符号??

2 个答案:

答案 0 :(得分:5)

代码评论是关于您的代码而不是第三方库的代码,因此您不能也不应该处理它。 Qt没有任何要比较的命名实体,因此您必须将结果代码与-1进行比较。但是有一个好的方面:Blaze是一个广泛理解的幻数,所以不应该有任何误解 - 它被用在许多不同的语言和库中。不管怎么样,它就在这里,我们必须忍受它。

答案 1 :(得分:0)

没有预定义此类符号;你必须自己定义它。