Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
scotty
28 / 28 / 1
Регистрация: 09.09.2012
Сообщений: 131
#1

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

09.09.2012, 12:10. Просмотров 327. Ответов 2
Метки нет (Все метки)

Мои первые попытки написать консольную версию пошагового боя обвенчались неудачей в самом начале. При тестовых ударах в цикле 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.09.2012, 12:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка в организации класса (C++):

Построить описание класса, содержащего информацию о почтовом адресе организации - C++
помогите пожалуйста решить задачу на классы Построить описание класса, содержащего информацию о почтовом адресе организации....

Построить описание класса, содержащего информацию о почтовом адресе организации - C++
помогите=) Построить описание класса, содержащего информацию о почтовом адресе организации. предусмотреть возможность раздельного...

По умолчанию Построить описание класса, содержащего информацию о почтовом адресе организации - C++
Построить описание класса, содержащего информацию о почтовом адресе организации. Предусмотреть возможность раздельного изменения...

ошибка при организации меню - C++
Здравстрвуйте ! при вызове функции vector выдаёт ошибку...c чем это связано ? #include &lt;stdio.h&gt; #include...

Удаление экземпляра класса в функции самого класса (Ошибка при отладке) - C++
Допустим, у нас есть класс Buffer, который хранит в себе указатель на класс некоторой матрицы и количество этих указателей refcounter ...

Ошибка компиляции (преобразование объекта класса в объект другого класса) - C++
Друзья, добрый день! Не могу понять почему выдается ошибка компиляции... Прога преобразует доллары США в старые Британские фунты. Но...

2
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.

По этому принципу и изменяй объектные переменные.
0
scotty
28 / 28 / 1
Регистрация: 09.09.2012
Сообщений: 131
09.09.2012, 14:38  [ТС] #3
спасибо))) получилось
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.09.2012, 14:38
Привет! Вот еще темы с ответами:

Ошибка при вызове метода класса в методе другого класса - C++
Господа программисты, возникла такая проблема. При вызове метода класса в методе другого класса выходит такая ошибка &quot; нестандартный...

Ошибка при работе с объектом класса в конструкторе другого класса - C++
Имеется данный код: https://github.com/ubelian/glgame/tree/master/glgame В файле Food.cpp в конструкторе класса Food::Food() на 19...

"Нарушение прав доступа при чтении по адресу" при организации класса очереди типа FIFO - C++
Есть класс очереди типа FIFO: class FIFO { private: int* queue; int cols; public: //конструктор по умолчанию FIFO(int i...

Ошибка "Segmentation fault" при организации дерева - C++
Есть следующие функции Three сreateThree(Node **q) { if((*q)-&gt;p) { Three *one, *two; one =...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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