我试图做一个简单的D&D游戏,我碰到了一个点,它给我这些错误无效使用非静态数据成员'健康'和其他几个类成员。如何解决此问题?这是我密码
void no(){
time_t current_time = time(NULL);
srand((unsigned) time(NULL));
int bugstar = (((rand() % 8) + (rand() % 8)) + 2);
int bujaveline = (((rand() % 2) + (rand() % 2)) + 4);
int bugjaveline2 = ((rand() % 6) + 2);
int bugstarboss = (((rand() % 8) + (rand() % 8)) + 3);
int bujavelineboss = (((rand() % 2) + (rand() % 2)) + 3);
int bugjavelineboss2 = ((rand() % 6) + 3);
}
int main()
{
BugBearBoss{
health = 65;//error here
armour = 17;//error here
attack = "bugstarboss"; //error here
attack1 = "bujavelineboss";//error here
attack2 = "bugjavelineboss2";//error here
}
BugBear{
health = 27;//error here
armour = 16;//error here
attack = "bugstar";//error here
attack1 = "bujaveline";//error here
attack2 = "bugjaveline";type here//error here
}}
这些是我的类,用于包含错误的每个项目,这里是类的代码。
using namespace std;
class BugBearBoss{
public:
string weakness;
int health;
int armour;
int attack;
int attack1;
int attack2;
};
class BugBear{
public :
string weakness;
int health;
int armour;
int attack;
int attack1;
int attack2;
};
我试过把void函数变成一个int函数,并删除int main,但每一个都有自己的错误。
现在我使用了未声明的标识符BugbearBoss,以及无效使用了非静态数据成员“armour”
1条答案
按热度按时间yv5phkfx1#
我试过把void函数变成一个int函数,并删除int main,但每一个都有自己的错误。
这些并没有解决问题,因为它们不是问题的根源。类中有非静态成员变量。它们属于类的 * 示例 * 而不是类本身。
现在,在您的情况下,它们都是私有的,您没有提供任何访问它们的机制,因此它们是无用的。您可以编写一个构造函数和一组成员函数来提供此数据的接口,或者将它们全部公开。
或者:
如果你这样做,你可以创建一个类的 * 示例 *,并为这些成员变量赋值。