Я не делал много полиморфизма в C++, и это было давно, так как я сделал это на других языках, поэтому мне хотелось бы внести свой вклад в то, что я пытаюсь добиться даже возможно.C++ Array/Список различных классов
У меня есть класс «Entity» и несколько других «специализированных» подклассов, которые наследуют Entity. Эти подклассы имеют совершенно разные методы (не переопределение/повторение одного и того же), поскольку они должны выполнять разные функции.
Я ищу способ организовать все эти «сущности» в один список. Если бы я должен был создать единый массив типа «Entity» и назначить подкласс для массива, я бы больше не мог вызывать какие-либо функции подкласса, а только родительские функции «Entity».
Единственный беспорядочный способ, о котором я могу сразу подумать, - создать массив для каждого подкласса, который не кажется таким же аккуратным, когда я думаю о количестве подклассов, которые я намереваюсь сделать, а не укажите объем памяти, который приложение должно будет выделить.
Есть ли какой-либо способ для чистого достижения чего-то похожего на то, что я пытаюсь сделать?
Если у вас есть список экземпляров 'std :: unique_ptr' списка, вы можете сохранить в списке любой выделенный под кучей подкласс' Entity'. При повторении списка вы можете использовать 'dynamic_cast' для фильтрации для интересующих вас объектов в данный момент. – cdhowie