C++对非静态数据成员的使用无效

C++ invalid use of nonstatic data member

本文关键字:无效 数据成员 静态 C++      更新时间:2023-10-16

我环顾四周,问了很多这个问题,但我觉得他们遇到的问题似乎与我的不同。我只是一个初学者,所以我发现很难理解我的程序出了什么问题。这是代码:

#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 main()"中:36:39:错误:非静态成员函数的使用无效

问题似乎出在主函数底部的cout上。请帮忙!

getHealth()是一个类方法,而不是成员,因此它应该是:

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