Я делаю программу, которая решает ряд подобных проблем.Использование объекта «суперкласс» для обработки унаследованных классов
Я начинаю с классом, который выглядит как (например):
class problem {
void init();
void solve();
int print_result();
}
, но тогда я хотел бы расширить этот класс для различных задач:
class problem_A : problem {
void init();
void solve();
void print_result();
}
class problem_B : problem {
void init();
void solve();
void print_result();
}
...
Но в главном интерфейсе Я хотел бы иметь один объект для любой из проблем (A, B, ...) и обрабатывать их как:
obj.init();
obj.solve();
obj.print_result();
Как это достичь? Какой тип должен быть?
Изучите шаблон шаблона метода шаблона (http://sourcemaking.com/design_patterns/template_method). Также обратите внимание, что без виртуальных функций или использования статического полиморфизма вы не можете переопределить поведение базовых классов. –
звучит как шаблон фабрики. –
@GaneshKamath Это просто более развязанный вариант. –