2016-04-10 6 views
-1

私は周りを見渡して、この質問を公正なビットを尋ねたが、私は彼らが持っている問題は私と異なっているようです。 私は初心者ですので、私のプログラムで何が間違っているのか分かりにくいです。ここC++無効な非静的データメンバの使用

#include <string> 
#include <iostream> 
using namespace std; 

class Character 
{ 
    int health; 
    string action; 

    public: 
    void setHealth(int hp) {health = hp;} 
    void setAction(string act) {action = act;} 
    int getHealth() {return health;} 
    string getAction() {return action;} 
}; 

int main() 
{ 
    int difficulty; 

    Character player; 
    player.setHealth(15); 

    Character enemy; 

    cout << "What difficulty would you like to play? easy = 1, medium = 2, hard = 3 "; 
    cin >> difficulty; 

    switch (difficulty) 
    { 
     case 1 : enemy.setHealth(10); break; 
     case 2 : enemy.setHealth(15); break; 
     case 3 : enemy.setHealth(20); break; 
    } 

    cout << "\nEnemy health = " << enemy.getHealth << endl; 

    return 0; 
} 

そして、私が取得エラーメッセージが表示されています: 36:39:エラー:「int型のmain()」関数でここでは、コードである非静的メンバ関数の無効な使用

それ問題はmain関数の一番下にあるcoutにあるようだ。 助けてください!

+0

は 'getHealth'が関数である、あなたは()' 'enemy.getHealthそれを呼び出すために括弧を必要とするようにします。 –

答えて

2

getHealthは()クラスメソッド、メンバーではありませんので、それは次のようになります。

cout << "\nEnemy health = " << enemy.getHealth() << endl; 
関連する問題