У меня проблема с ошибкой переопределения класса. Мне дали файл «Arraylist.cpp» и «Arraylist.h». Как ни странно, инструктор включал Arraylist.h охранников заголовка в Arraylist.cpp вОшибка Redefinition класса C++
#ifndef ARRLIST
#define ARRLIST
#include "Arraylist.h"
#endif
Для меня это имеет смысл, даже если это действительно странно. Теперь у меня есть стек и класс Queue, что оба унаследовать от Arraylist и имеют .cpp и .h файлы с соответствующими охранниками заголовка перечислены ниже
#ifndef QUEUEARRLIST
#define QUEUEARRLIST
#include "Arraylist.h"
//Code
#endif
#ifndef STACKARRLIST
#define STACKARRLIST
#include "Arraylist.h"
//Code
#endif
В другом классе, я включаю как Stack.h и Queue.h. Во время компиляции я получаю «Ошибка переопределения класса» на Arraylist.cpp. Теперь, если переместить защитники заголовков из Arraylist.cpp в Arraylist.h, как и любой нормальный человек, я не получу ошибок, и все работает нормально. Проблема заключается в том, что нам не разрешено изменять код инструктора, так что есть ли способ обойти это, или я должен сказать профессору, что он должен пересмотреть, включая защитников заголовков в своем .cpp-файле?
вам следует направить по электронной почте своего инструктора. Инструкторы совершают много ошибок. уточнить с ними. – pippin1289
Это полностью сломано. Просто поставьте включенных охранников в их заголовки, где они принадлежат. – juanchopanza