2017-02-19 6 views
-1

最初の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 
+4

クラスは関数ではありませんので、さらに読む必要があります。 – George

+4

C++に関してかなりの誤解があるようです。あなたは一歩踏み込んで、良い本から系統的に言語を学ぶべきです。 –

+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 
+0

と同様、 'hareMovement = hareMovement + 3;'は 'hareMovement + = 3;'に短縮できます。 2番目のelseは決してヒットすることはありませんが、私はコードが終了していない得る:)また、それはここで本当に問題ではありませんが、あなたは[ランダム](http://www.cplusplus.com/reference/random /)ヘッダには、非常に良い擬似乱数生成器がいくつか含まれています。 – George

+0

ヒントをありがとう。私はそれが短縮することができることを知っていたが、私はこの初心者のものを短絡させたくない。 lol ... さらに正確な乱数生成ライブラリを見つけましたが、この学習例ではrand()がうまくいくと感じました! もう一度お手伝いします。あなたは私の簡単な回答の投稿のうちのもう1つを将来見ることができます。乾杯! –

+0

最初の条件( 'hareRoll> 50')がfalseならば、第2の条件(' hareRoll> 50 && ... ')も' 'else if''ブロックに入ることはないので、偽です。 'hareMovement = 3'(または' hareMovement = 6')は、初期値が '0'なので、つまり' 0'に追加しているだけです。 – user463035818

0

私はあなたが問題を解決したことに気付きましたが、代わりの解決策を提案したいと思います。

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

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

    return hareMovement; 
} 

私はちょうど欲しかっ:次のように続いて、あなたの関数を定義することができます

#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 

:あなたはyoutは疑問で宣言されたクラスを維持したい場合は、次のコードを修正するために行うことができますたとえそれが前に投稿されたとしても、この方法を投稿する機会としてこの質問をすることです。お役に立てれば!

ところで、自分のコードや投稿に間違ったことがある場合は、コメント欄にお知らせください。

関連する問題