2016-04-10 2 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; 
} 

А вот сообщение об ошибке я получаю: В функции «Int основной()»: 36:39: ошибка: неправильное использование не-статической функции члена

Это появляется проблема в cout в нижней части основной функции. Пожалуйста, помогите!

+0

'getHealth' является функцией, так что вам нужно скобки, чтобы назвать его' enemy.getHealth() '. –

ответ

2

getHealth() является методом класса, а не член, поэтому он должен быть:

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