我和我的朋友正在学习 C++,尽管我们已经能够在这个程序中解决所有遇到的问题(并且通过这样做学到了很多),但这个问题一直让我们绞尽脑汁。我们花费了无数个小时,不仅试图自己解决它,而且还查看了 Stackoverflow 的相关问题并进行了大量的谷歌搜索......最后我们决定我们只需要询问并希望你们中的一个人知道我们的问题是什么.
基本上我们正在尝试创建一个基于文本(仅限控制台)的 RPG,我们已经到了使用我们唯一的头文件中定义的类创建玩家统计信息的地步,该类有三个构造函数(使用函数重载当然)虽然我们能够无错误地运行游戏,但似乎我们无法以任何方式实际编辑类成员变量的值!
这是我们的课:
//File OverHeader.h
class PlayerStatistics
{
public:
PlayerStatistics(int HitPoints, int MagickaPoints, int Fatigue, int Damage, int Defense, int Dodge, int Block, int SpellCastChance);
PlayerStatistics(int Experience, int Level);
PlayerStatistics();
int HitPoints;
int MagickaPoints;
int Fatigue;
int Damage;
int Defense;
// Chance Based System (Relies on Fatigue Level)
int Dodge;
int Block;
int SpellCastChance;
int Experience;
int Level;
};
主要功能:
#include <iostream>
#include <string>
#include "OverHeader.h"
// MAIN FUNCTION DEFINITION
int main()
{
PlayerStatistics PlayerStats(20, 20, 20, 20, 20, 20, 20, 20);
PlayerStatistics PlayerStatsLevel(0, 1);
//continued with code irrelevant to this question.
}
问题是主函数中的行实际上并没有将类中的整数变量设置为这些值。在这两行之后,整数值应设置为(仅用于演示目的):
int HitPoints == 20;
int MagickaPoints == 20;
int Fatigue == 20;
int Damage == 20;
int Defense == 20;
int Dodge == 20;
int Block == 20;
int SpellCostChance == 20;
int Experience == 0;
int Level == 1;
但奇怪的是,输出这些整数中的任何一个都只会输出随机数(大概是内存地址当前值)。
这三个构造函数实际上在这里正确定义(尽管不在 Main.cpp 中):
// PlayerCreation.cpp
PlayerStatistics::PlayerStatistics(int HitPoints, int MagickaPoints, int Fatigue, int Damage, int Defense, int Dodge, int Block, int SpellCastChance)
{
}
PlayerStatistics::PlayerStatistics(int Experience, int Level)
{
}
PlayerStatistics::PlayerStatistics()
{
}
这就是我们的问题,我希望我描述得足够清楚,如果你能帮助我们实际编辑这些类成员变量的值,请告诉我!感谢所有帮助!