Называй меня тупым или как тебе угодно. Мой университет никогда не учил меня должным образом ООП, и из-за этого я предпочитаю программировать на C. ОДНАКО, в интересах расширения и обучения некоторым новым навыкам, я решил попробовать и научить себя чему-то еще объектному. ориентированные навыки, а также заняться одним из моих других увлечений/хобби, текстовыми приключениями. Я попытаюсь сделать это на C++, так как это язык, который я использовал для большей части своего старшекурсника, поэтому я знаю его лучше всего. Я зациклился на том, что написал общий файл .h для базовых атрибутов и методов, которые должно иметь «местоположение». Это все хорошо, если все, что я хочу сделать, это создать кучу комнат и иметь возможность перейти на С/Ю/В/З в другую общую комнату и распечатать описание комнаты. Чего я не знаю, так это сделать более конкретную реализацию этого заголовочного файла. Боюсь, я не очень хорошо объяснил свою проблему, поэтому позвольте мне проиллюстрировать это примером:
У меня есть комната, назовем ее "Гостиная". К северу от него находится «Кухня». К югу от него находится «Логово». Между «Гостиной» и «Логом» есть дверь. Пользователь может сказать «N», и будет вызвана функция goNorth(), и все будет замечательно. Однако, если пользователь говорит «S», я хочу, чтобы это дало им что-то вроде «вы не можете идти туда», пока они не откроют дверь. Это потребует от меня либо 1) полностью отказаться от моей идеи ООП и просто написать каждую комнату как собственный набор функций и переменных (как я бы сделал это в прошлом), либо 2) сделать конкретную реализацию файла заголовка, который у меня есть, содержащий все эти функции и переменные для каждой комнаты (как я теоретически хотел бы это сделать), однако я просто не знаю, возможно ли это технически и как это сделать. Если бы кто-то мог указать мне правильное направление, сводя к минимуму имена, я был бы очень признателен.
И просто чтобы вы знали, я хорошо знаю, что есть целые языки и движки, предназначенные для этого процесса, я не пытаюсь сделать грандиозную полномасштабную игру прямо сейчас, все, что я хочу сделать, это отточить свои навыки программирования, вот почему Я иду по этому маршруту.
.h
не может быть нескольких файлов.cpp
. Вы можете создать абстрактный базовый классclass Room
с виртуальными функциями, такими какvirtual void printDescription() = 0;
, и производными классами (class Kichen : public Room
), реализующими методы, и иметь элементы данных для состояния этой комнаты (bool drawerOpen
). - person tmlen   schedule 27.04.2016main.cpp
. - person   schedule 27.04.2016.cpp
) для одних и тех же объявлений функций (в.h
), что, похоже, и пытался сделать OP. В остальном количество.cpp
или.h
файлов не имеет значения. - person tmlen   schedule 27.04.2016