使用简单的头文件获取错误“跳过明显的函数体”

时间:2017-02-19 22:54:24

标签: c++ function if-statement

错误似乎发生在第一个if语句中。我似乎无法理解为什么会发生这种情况。 if不在全局命名空间中,因为我的谷歌搜索引导我检查。

如果我没有正确发布,我会道歉但这是我的第一篇文章。

提前致谢。这可能很简单,但我目前正在学习。

#ifndef moveHare
#define moveHare

//Create new class for Hare movement roll
class moveHare
{
//Initialize variables to be used
    int hareMovement = 0;
    int hareRoll = rand() % 100 + 1;

private:
//if statements to compare the random int to the movement int 
//Error happens at first if statement.`enter code here`
    if (hareRoll > 50) {
        hareMovement = hareMovement + 3;
    }

    else if (hareRoll > 50 && hareRoll < 71) {
        hareMovement = hareMovement + 6;
    }
};

#endif

2 个答案:

答案 0 :(得分:0)

我在头文件中创建了一个新类,而不是声明一个函数。这是纠正但未完成的代码。

感谢乔治和鲍姆向我展示了一套熟练的眼睛!

#pragma once

#ifndef movement
#define movement





int moveHare() {

        int hareMovement = 0;
        int hareRoll = rand() % 100 + 1;

        if (hareRoll > 50) {
            hareMovement = hareMovement + 3;
        }

        else if (hareRoll > 50 && hareRoll < 71) {
            hareMovement = hareMovement + 6;
    }
        return hareMovement;
}


#endif

答案 1 :(得分:0)

我注意到你已经解决了这个问题,但我只想提出替代解决方案。如果你想保留你在问题中声明的类,那么你可以执行以下操作来修复代码:

 #ifndef moveHare
 #define moveHare

 //Create new class for Hare movement roll
 class MoveHare
 {
     private:
         int hareMovement = 0;
         int hareRoll = rand() % 100 + 1;

     public:
         int MoveTheHare(void);
 };

 #endif

然后您可以按如下方式定义您的功能:

int MoveHare::MoveTheHare(void)
{
    if (hareRoll > 50)
    {
        hareMovement = hareMovement + 3;
    }

    else if (hareRoll > 50 && hareRoll < 71)
    {
        hareMovement = hareMovement + 6;
    }

    return hareMovement;
}

我只是想把这个问题作为发布此方法的机会,即使它已经发布过了。希望这有帮助!

顺便说一句,如果我的代码或帖子中有任何错误,请在评论栏中告知我。