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

Ошибка в организации класса - C++

Восстановить пароль Регистрация
 
scotty
28 / 28 / 1
Регистрация: 09.09.2012
Сообщений: 131
09.09.2012, 12:10     Ошибка в организации класса #1
Мои первые попытки написать консольную версию пошагового боя обвенчались неудачей в самом начале. При тестовых ударах в цикле for увидел что очки жизней персонажа не уменьшаются, тк кк задумывалось.
Начинаю подозревать что нужно использовать указатели, но это тоже не обвенчалось успехом, посоветуйте пожалуйста что нужно сделать чтобы из класса P2 переменная hp начала уменьшаться а не обнулялась в 100.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <conio.h>
#include <string>
 
using namespace std;
 
class PERS
{
private:
    int hp;
    string name;
public:
    PERS(): hp(100), name("Player2")
    {}
    PERS(string nm): hp(100), name(nm)
    {}
    void attack(PERS P2)
    {
        int damage=rand()%10;
            while (damage==0)
            damage=rand( )%10;
        int heal=P2.hp;
        heal-=damage;
        P2.*hp=heal;
        cout<<"Персонаж "<<name<<" нанес урона: "<<damage<<endl;
        cout<<P2.hp<<endl;
        
    }
};
 
int main ()
{
    setlocale( LC_ALL,"Russian" );
    PERS P2;
    string name;
    cout<<"Введите имя персонажа: ";
    cin>>name;
    PERS P1(name);
    for(int i=0;i<10;i++)   //для примера что урон считает и типо не равняется нулю....буду без 
    {P1.attack(P2);      //промахов пока-что
    
    }
    getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.09.2012, 12:10     Ошибка в организации класса
Посмотрите здесь:

C++ ошибка при организации меню
Построить описание класса, содержащего информацию о почтовом адресе организации C++
C++ Ошибка компиляции (преобразование объекта класса в объект другого класса)
По умолчанию Построить описание класса, содержащего информацию о почтовом адресе организации C++
Ошибка в создание класса C++
Ошибка в конструкторе класса C++
C++ Ошибка преобразования класса
C++ Ошибка "Segmentation fault" при организации дерева

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Neon-z
46 / 41 / 1
Регистрация: 06.09.2010
Сообщений: 419
09.09.2012, 12:39     Ошибка в организации класса #2
тЫ передаешь толкьо копию объекта, в копии изменяеться, но наружу изменения не выходят. Тебе надо использовать ссылку: &
Ставишь ее перед теми переменными в параметрах функции, которые тебе нужно изменять глобально.

Пример
C++
1
2
3
4
5
int i=10;
void test(int a){
a=20;
}
test(i);
Вывод даст 10, а если так:

C++
1
2
3
4
5
int i=10;
void test(int &a){
a=20;
}
test(i);
то вывод даст 20.

По этому принципу и изменяй объектные переменные.
scotty
28 / 28 / 1
Регистрация: 09.09.2012
Сообщений: 131
09.09.2012, 14:38  [ТС]     Ошибка в организации класса #3
спасибо))) получилось
Yandex
Объявления
09.09.2012, 14:38     Ошибка в организации класса
Ответ Создать тему
Опции темы

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