0

我正在尝试编写一个 bool 函数,该函数查看包含正数或负数的数组中的第一个索引,并对其是否为负号(即 - )进行分类。如果它是负号,则返回假,其他一切都返回真。我试图弄清楚如何比较负号。由于'-',以下代码给出错误

    bool BigNum::get_positive() const
{
char '-';
if(digits[0] == '-')
{
    return false;
}
else
{
    return true;
}
}
4

3 回答 3

5
char '-';

编译器认为您正在尝试声明一个字符,但这不是一个有效的声明。

您的整个功能可以替换为:

return (digits[0] != '-');

当然,这是假设[0]是 的有效索引digits。如果没有,坏事就会发生。如果您知道数组的长度,则可以进行如下检查:

if( digits_length < 1 )
  return false;
return (digits[0] != '-');
于 2011-09-21T07:48:54.093 回答
1

您必须删除或评论“char '-';”

于 2011-09-21T07:52:28.850 回答
1

错误在于行字符'-'。'-' 应该存储在某个变量中,稍后可以在if子句中使用该变量进行比较。这是一个语法错误,因为您没有为“-”定义存储。

否则,如上所述,只需删除此行并在if中使用 '-' 即可(因为您已经这样做了)

于 2011-09-21T07:54:26.813 回答