Я заявляю, что являюсь новичком в C++. Это первый раз, когда я использую классы, и я думаю, что я сделал беспорядок с указателями. До сегодняшнего дня я всегда использовал структуру, но с частными членами я пошел с хэви.initialize Класс и список
Мне нужно создать:
class Army{
private:
WarriorEl* lista;
int lungh = 0;
public:
Army();
....other methods.....
};
class WarriorEl{
private:
Warrior war;
WarriorEl* pun;
public:
WarriorEl();
WarriorEl(int health, int mana, int index, float experience);
....other methods.....
};
class Warrior{
private:
int health;
int mana;
int index;
float experience;
public:
Warrior();
Warrior(int health, int mana, int index, float experience);
....other methods.....
};
В сборнике это хорошо, но когда я запускаю код он выходит из строя, когда переменные инициализируются.
главная: http://codepad.org/Hm5mhsJv
Army.h http://codepad.org/AHM0OTxQ
Army.cpp http://codepad.org/Uuql3Wud
WarriorEl.h http://codepad.org/o3Q1V3Gf
WarriorEl.cpp http://codepad.org/AumIpNdo
Warrior.h http://codepad.org/x52A66fF
Warrior.cpp http://codepad.org/F5QZxnH9
Как он падает? Какая у вас ошибка? – nhgrif
Первое, что очевидно: вы имеете дело с необработанными указателями, но не объявляете конструкторы копирования, деструкторы или операторы присваивания. Если вы собираетесь вручную управлять памятью с помощью необработанных указателей, это необходимо. Вы также не показываете реализацию конструкторов и инициализацию указателей; они могут быть инициализированы по умолчанию, что в C++ для необработанных указателей означает, что они имеют случайные неопределенные значения. (Нет, я не нажимал ссылки). –
Ошибка: «Необработанное исключение в 0x00A32AE6 в AIV11_WarriorConClassi.exe: 0xC0000005: место записи нарушения доступа 0x00000010." @nathan, так что мне делать? Из того, что я понимаю, я должен написать конструктор для каждого класса, однако, я думал, что уже сделал это. –