2015-06-04 4 views
0

У меня в настоящее время возникают проблемы с моим классом и функциями-членами, в частности, с учетом ввода пользователями функций 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"; 
} 
+0

Хотя ответ FPK прав, нет необходимости использовать геттеры, потому что 'PrintInfo()' может напрямую обращаться к атрибутам, поэтому вы можете просто использовать 'std :: cout << CharacterName << std :: endl'. – tomse

ответ

2

() Используйте, чтобы сделать вызов метода в PrintInfo:

cout << "\nCharacter name is " << GetCharacterName() << ".\n"; 

т.д.

+0

Большое вам спасибо, что исправил мою проблему, мне всегда удается пропустить такие мелочи. – Aaltair

1

I sugest: this-> GetCharacterName(); В методе печати.

 Смежные вопросы

  • Нет связанных вопросов^_^