我目前遇到了一些與我的類和成員函數有關的問題,特別是從setter函數中獲取用戶輸入,然後從打印信息函數中顯示該信息。我有一個單獨的功能,允許用戶輸入有關該字符的信息,然後使用一個吸氣功能來打印出用戶輸入的信息。當我第一次運行它時,我有一個關於需要使用指向成員函數的指針的錯誤,並且在我的打印信息函數中添加了Character :: GetCharacterName和其他字符。現在,當我通過主函數運行程序(我沒有包含它,因爲它只是調用所有函數),我的程序將運行,但所有值都設置爲1,無論用戶輸入什麼內容。我知道它與指針有關,所以任何幫助正確設置它,以便它返回用戶輸入的值將不勝感激。由於C++幫助在類中設置指針
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的答案是正確的,但不需要使用getter,因爲'PrintInfo()'可以直接訪問屬性,因此您可以簡單地使用'std :: cout << CharacterName << std :: endl'。 – tomse