0 / 0 / 0
Регистрация: 20.03.2020
Сообщений: 61
1

Нету доступа к классу через указатели

07.01.2021, 18:54. Показов 1183. Ответов 3

Author24 — интернет-сервис помощи студентам
Когда написал то все работало, но через время я не уследил, и когда стал проверять начало вылетать, в других функциях где требуеться доступ в класс не помогают сеттеры и геттеры, прога крашится.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void Group::attack_Group(Group* _target) // Group*
{
    int j = 0;
    for (int i = 0; i < n_group; i++)
    {
        if (!_target->group[j]->isAlive())
            j++;
        if (!group[i]->isAlive())
            i++;
 
        if (_target->group[j]->isAlive())
        {
            cout << group[i]->getName() << " is attacking " << _target->group[j]->getName() << endl;
            group[i]->attack(_target->group[j]); //в этом месте вылетает ошибка Access violation reading location 
        }
        else if (_target->group[++j] == nullptr) {
            return;
        }
 
    }
Вызов происходит так

C++
1
2
3
4
5
6
7
8
9
10
while (group->isAliveGroup() && group_enemy->isAliveGroup())
    {
        cout << "~~~~~~~~~ Round" << i++ << "~~~~~~~~~`" << endl;
        group->attack_Group(group_enemy);
        group_enemy->attack_Group(group);
        group->showHPMPGroup();
        group_enemy->showHPMPGroup();
        int a = _getch();
        system("cls");
    }
Вот сам класс

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#pragma once
#include "Unit.h"
class Group
{
    static int ID_group;
    Unit** group = nullptr;
    int n_group = 0;
public:
    Group() = default;
    void attack_Group(Group* _target);
    void addUnit(Unit* u);
    void deleteUnit();
    bool isAliveGroup();
    int getSize()const;
    void showGroup()const;
    void save(fstream& GroupUnit);
    void load(fstream& GroupUnit);
    void showHPMPGroup()const;
};
В дебагере оно даже не дает доступ до класса

Добавлено через 36 минут
C++
1
2
Group* group = new Group;
Group* group_enemy = new Group;
Вот такое создание групп
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.01.2021, 18:54
Ответы с готовыми решениями:

Нету доступа к функции через обьект
Мне нужно функцией через обьект определить чётное или нечётное число - так выходит function...

Стек через указатели — ошибка доступа
Задача такова: реализовать стек, в котором будут такие команды — push (добавить в конец элемент),...

Нет доступа к классу из другого проекта
В солюшене несколько проектов, пытаюсь получать доступ к паблик классу из другого проекта, референс...

Нету доступа к свойствам MainViewModel
Доброе время суток, наткнулся на интересную, по крайне мере для меня, проблему. Я создал класс...

3
Just Do It!
3837 / 2283 / 636
Регистрация: 23.09.2014
Сообщений: 7,051
Записей в блоге: 2
07.01.2021, 22:20 2
Цитата Сообщение от Selveresta Посмотреть сообщение
Вот такое создание групп
обычное дело:
группа на группе группой погоняет!

Selveresta,
а кто сказал, что если студентам запретить трогать гоуту,
то они не смогут писать спагетти код?
0
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
07.01.2021, 22:23 3
Лучший ответ Сообщение было отмечено Selveresta как решение

Решение

Цитата Сообщение от Selveresta Посмотреть сообщение
if (!_target->group[j]->isAlive())
            j++;
Прежде, чем обращаться к _target->group, надо проверять, что индекс не больше _target->n_group

Добавлено через 1 минуту
C++
1
2
int j = 0;
for (int i = 0; i < n_group && j < _target->n_group; i++)
Добавлено через 55 секунд
Цитата Сообщение от Selveresta Посмотреть сообщение
_target->group[++j]
А так вообще не нужно делать
0
Just Do It!
3837 / 2283 / 636
Регистрация: 23.09.2014
Сообщений: 7,051
Записей в блоге: 2
07.01.2021, 22:27 4
Цитата Сообщение от Selveresta Посмотреть сообщение
Вот такое создание групп
а здесь какое?
Цитата Сообщение от Selveresta Посмотреть сообщение
Unit** group = ...
0
07.01.2021, 22:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.01.2021, 22:27
Помогаю со студенческими работами здесь

На компе нет доступа к нету
Добрый вечер. Возник такой вопрос. Есть локальная сеть с доступом в интернет и один комп видит...

Обработка матриц через указатели. Обработка символьных данных и строк через указатели
Ребят, напишите 2 кода, пожалуйста. Плох в этом. На С. Буду очень благодарен. Цель: 1....

Как обеспечить возможность доступа из любого модуля к определенному классу?
Допустим в проекте есть модуль, в котором определен класс, состоящий из полей и методов, которые...

ubuntu сервер нету доступа у народа
Имеется: Сервер игры находящийся в папке pwserver! Небольшой сайт находящийся в папке var-www!...

Нету доступа в Интернет ни в одном браузере
Добрый день. У меня возникла ситуация с доступом в интернет- его просто нету ни через один из...

Через указатели на указатели посчитать сумму двух чисел и записать в третье
1. Через указатели на указатели посчитать сумму двух чисел и записать в третье. 2. Написать...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru