У меня есть куча классов.
Я в цикле хочу создать объект каждого класса и вызвать у него определенный метод. Все классы являются дочерними( и внучатыми) одного родительского.
Как можно это реализовать?
class A {
void f();
}
class B: public A { }
class C: public A { }
class D: public C { }
class E: public A { }
class F: public A { }
class G: public A { }
void main () {
// тут волшебный код который вы мне сейчас подскажите
// и в итоге получится массив классов mClass[7]
for (int i = 0; i < 7; i++) {
mClass[i] t;
t.f();
}
}
Элементами массива могут быть только объекты одного и того же типа. Если хочется запихнуть в него объекты разных классов, то это будет кортеж. Создать кортеж и вызвать метод для каждого объекта можно так:
::std::tuple<A, B, C, D, E, F, G> items{};
::std::apply([](auto &&... item){(item.f(),...);}, items);
online compiler
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Скорее всего вопрос поставлен некорректно, но суть таковаХочу написать небольшое приложение
В моей программе (лабораторная работа на тему наследования по Павловской) возникает ряд ошибок указывающих на то, что я сделал синтаксическую...
Устанавливал VS 2015 communityПотом зашел в комплекты выбрал комплект MVSC 32 компилятора, для этого комплекта выбрал 1 из нескольких MVSC компиляторов,...
Добрый деньОбъясните пожалуйста, почему когда я пытаюсь вывести адрес метода класса с помощью функции printf(), он выводится в консоль в обычном...