【问题标题】:using an array of boolean values 'expression must have pointer-to-object-type' error C++使用布尔值数组'表达式必须具有指向对象类型的指针'错误C++
【发布时间】:2017-09-06 04:22:42
【问题描述】:

我正在编写一个程序来跟踪我的锻炼进度并生成下一次锻炼。我正在使用一个类来检查最后一次锻炼并生成下一次锻炼。此类中的一个函数检查最后一次锻炼,如果满足某个条件,则为下一次锻炼增加重量。

我想为此函数使用一个布尔值数组,每种电梯类型都有一个值。这样一来,升降机可以独立处理,因为我无疑会进步不均。

该函数相当简单,我认为它不会有问题,但是当我尝试遍历布尔数组并将它们设置为如果满足条件,则为 true。

这是我遇到问题的代码:

void setNextWo(bool woProgression, int lastWoLastSetReps[6])
{
    int i = 0;

    for (i; i < 4; i++)
    {
        if (lastWoLastSetReps[i] >= 5)
        {
            woProgression[i] = true;
        }
    }
}

woProgression[i] 中的 i 带有红色波浪线下划线,并且正在生成错误。任何想法我做错了什么?

非常感谢

**编辑:我刚刚意识到我不应该通过引用传递数组。我在代码和帖子中对此进行了更改,但仍然收到相同的错误消息。

【问题讨论】:

  • 您传递的是对布尔变量的引用,而不是指针(可以解释为数组)。编辑:刚刚看到您的更新,将重新分析。
  • 你将woProgression声明为一个简单的布尔变量,它应该是一个数组。
  • 除了已经说过的:在c++中你应该避免使用c风格的数组。请改用std::array&lt;int,6&gt; lastWoLastSetRepsstd::array&lt;bool,6&gt; woProgression,并将它们作为引用或指针传递给您的函数。

标签: c++ arrays boolean


【解决方案1】:

您将woProgression 声明为一个简单的布尔变量,它应该是一个数组。

在此处发布与我对 close 问题的评论相同,也是因为我不确定 OP 是否阅读了 cmets。

【讨论】:

  • 哇,我觉得自己像个傻瓜一样忽略了这一点。谢谢你。我也确实阅读了 cmets,但我在刷新看到您发表评论之前进行了编辑。无论如何,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-11
  • 1970-01-01
  • 1970-01-01
  • 2016-03-05
相关资源
最近更新 更多