У меня в настоящее время возникают проблемы с моим классом и функциями-членами, в частности, с учетом ввода пользователями функций setter и последующего отображения этой информации из функции информации о печати. У меня есть отдельные функции, которые позволяют пользователю вводить информацию о персонаже, а затем функцию геттера, чтобы затем использовать для распечатки информации, введенной пользователем. Когда я впервые запустил его, у меня возникла ошибка в необходимости использования указателя на функцию-член, и я добавил & Character :: GetCharacterName и другие в моей функции информации о печати. Теперь, когда я запускаю программу через свою основную функцию (я не включал ее, потому что она просто вызывает все функции) моя программа будет работать, но все значения установлены на 1 независимо от того, что пользователь вводил. Я знаю, что это имеет какое-то отношение к указателям, поэтому любая помощь в правильной настройке этого варианта, чтобы она возвращала значения, введенные пользователем, была бы оценена. БлагодаряС ++ помощь в создании указателей в классах
Character.h file
class Character
{
public:
Character();
void SetCharacterName();
void SetCharacterType();
void SetCharacterLevel();
string GetCharacterName();
string GetCharacterType();
double GetCharacterLevel();
void PrintInfo();
private:
string CharacterName;
string CharacterType;
double CharacterLevel;
};
Character.cpp file
Character::Character()
{
CharacterLevel = 1.0;
}
void Character::SetCharacterName()
{
cout << "\nWhat is the character's name? ";
cin >> CharacterName;
}
void Character::SetCharacterType()
{
cout << "\nWhat is the character's type? ";
cin >> CharacterType;
}
void Character::SetCharacterLevel()
{
cout << "\nWhat is the character's level? ";
cin >> CharacterLevel;
}
string Character::GetCharacterName()
{
return CharacterName;
}
string Character::GetCharacterType()
{
return CharacterType;
}
double Character::GetCharacterLevel()
{
return CharacterLevel;
}
void Character::PrintInfo()
{
system("pause");
system("cls");
cout << "\nCharacter name is " << &Character::GetCharacterName << ".\n";
cout << "\nCharacter type is " << &Character::GetCharacterType << ".\n";
cout << "\nCharacter level is " << &Character::GetCharacterLevel << ".\n";
}
Хотя ответ FPK прав, нет необходимости использовать геттеры, потому что 'PrintInfo()' может напрямую обращаться к атрибутам, поэтому вы можете просто использовать 'std :: cout << CharacterName << std :: endl'. – tomse