Мои переменные не производят данные, как они должны быть.По какой-то причине моя строка пуста, но когда я пытаюсь выполнить свою функцию, мой персонаж явно передает аргумент «holland» параметру name при создании.Несмотря на это, когда я вызываю get_name (), строка возвращается как пустая.Кроме того, у меня есть статическое целое число с именем «character_count», которое должно инициализироваться в 0, а затем увеличиваться при каждом создании персонажа для передачи значений в уникальный идентификатор персонажа.Несмотря на это, он все еще не работает должным образом.
Может кто-нибудь сказать мне, пожалуйста, что я делаю не так?
вот мой источник:
#include "character.h"
#include <iostream>
int Character::char_count = 0;
Character::Character()
{
this->char_id = char_count;
char_count++;
}
Character::Character(std::string char_name, Race char_race, Gender char_gender)
{
char_id = char_count;
char_count++;
name = char_name;
race = char_race;
gender = char_gender;
}
Character::~Character()
{
}
std::string Character::get_name()
{
return this->name;
}
int Character::get_id()
{
return this->char_id;
}
Race Character::get_race()
{
return this->race;
}
Gender Character::get_gender()
{
return this->gender;
}
Вот мойзаголовочный файл:
#include <iostream>
#ifndef CHARACTER_H
#define CHARACTER_H
enum Race {HUMAN, DARK_ELF};
enum Gender {MALE, FEMALE};
class Character
{
public:
Character();
Character(std::string& char_name, Race& char_race, Gender& char_gender);
~Character();
int get_id();
std::string get_name();
Race get_race();
Gender get_gender();
private:
int char_id;
static int char_count;
std::string name;
Race race;
Gender gender;
};
#endif // CHARACTER_H
Вот мой основной:
#include <QtCore/QCoreApplication>
#include <tinyxml/tinyxml.h>
#include "classowner.h"
#include "character.h"
int main(int argc, char *argv[])
{
std::string holland_name = "holland";
Character * holland = new Character(holland_name, HUMAN, MALE);
delete holland;
std::cout << "testing, mic...1, 2, 3...testing, testing. Bow, chica wow wowww!!1" << std::endl;
std::cout << holland->get_id() << std::endl; //outputs as an 8 digit letter, when it should be either 0, or 1.
std::cout << holland->get_name() << std::endl; //does not output at all.
return 0;
}