Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Seroga7
6 / 6 / 1
Регистрация: 08.12.2012
Сообщений: 147
#1

Ошибка в классе - C++

19.04.2013, 18:35. Просмотров 223. Ответов 2
Метки нет (Все метки)

У меня есть класс Player и класс Poker

Прототип Player
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class Player {
  protected:
      string name;
      int money;
      int rating;
  public:
      Player();
      void set_name(string str);
      void set_money(int wined_money);
      void set_rating(int new_rating);
      string get_name();
      int get_money();        
};


Описание функций Player
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Player::Player(){
    money = 100;
    rating = 0;
}
void Player::set_name(string str){
          name = str;
      }
string Player::get_name(){
    return name;
      }
int Player::get_money(){
    return money;
}
void Player::set_money(int wined_money){
    money += wined_money;
}
void Player::set_rating(int new_rating){
    rating = new_rating;
}


Прототип Poker
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
class Poker : public Game {
public:
    friend class Player;
    void play_game(Player NAME, int money_gived);
};


Описание функций Poker
Кликните здесь для просмотра всего текста
C++
1
2
3
4
void Poker::play_game(Player NAME, int money_gived){
 
    NAME.set_money(money_gived);
}


Мейн
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void main(){
 
    setlocale(LC_ALL,"Rus");
    srand((unsigned)time(NULL));
 
    Player PEOPLE;  // Создание игрока
 
    cout << "Добро пожаловать в казино SVegas!!!" << endl;
    cout << "Как вас зовут?" << endl;
    string people_name;
    cout << ">> ";
    cin >> people_name;
    PEOPLE.set_name(people_name); // Ввод имени
   
    cout << PEOPLE.get_money();
    Poker POKER;
    POKER.play_game(PEOPLE, 90);
    cout << PEOPLE.get_money();
 
    cout << endl;
    system("pause");
}


Но функция POKER.play_game(PEOPLE, 90); не меняет значение... что не так?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2013, 18:35     Ошибка в классе
Посмотрите здесь:

C++ Ошибка в классе
Ошибка в классе C++
Ошибка перегрузки + в классе C++
Ошибка в классе C++
C++ Ошибка в классе
C++ Необычная ошибка в классе
C++ Ошибка в классе
Где ошибка в классе ? C++
C++ Ошибка в дочернем классе
C++ Ошибка c char в классе
Ошибка в классе C++
C++ Ошибка в классе

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Develops
15 / 15 / 1
Регистрация: 19.02.2013
Сообщений: 40
19.04.2013, 18:37     Ошибка в классе #2
Потому что объект Player передаётся в метод play_game по значению.
Seroga7
6 / 6 / 1
Регистрация: 08.12.2012
Сообщений: 147
19.04.2013, 18:48  [ТС]     Ошибка в классе #3
Огромное спасибо! Совсем забыл про ссылки
Yandex
Объявления
19.04.2013, 18:48     Ошибка в классе
Ответ Создать тему
Опции темы

Текущее время: 09:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru