Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Вариация методов |
Автор: Nikys 5.1.2014, 22:04 |
Подскажите, пожалуйста, наиболее удобную схему для вариации методов. Грубо говоря, есть реализация умножения чисел различными методами. Каким образом хранить возможность изменения метода умножения? На данный момент есть две идеи: 1) Хранение в классе методов в виде функций, на один из которых будет ссылаться указатель на функцию. 2) Хранение в классе объекта абстрактного класса, наследники которого конкретно реализовывают задачу, и к которым динамически приводится тип объекта абстрактного класса (и из него используются возможности этих наследников). Но хотелось бы услышать более рациональные и грамотные идеи по этому поводу для начинающего. Заранее всем благодарен. |
Автор: tzirechnoy 5.1.2014, 22:44 |
В первую очередь, проанализируйте, когда вам потребуется изменять этот метод умножэния. Если при компиляцыи программы -- то это одно, если при создании объектов/матриц, которые будут умножаться -- то это другое, если при каждом умножэнии, в зависимости от алгоритма -- третье, если при каждом умножэнии, в зависимости от какой-то настройки глобальной -- четвёртое. От этого зависит список доступных методов полиморфизма: абстрагирование при компиляцыи (шаблоны, препроцэссор), абстрагирование через конкретный тип или переменную класса, который содержыт данные, абстрагирование чере конкретный тип или переменную класса, который содержыт конкретные математические формулы, и т.п. |
Автор: akizelokro 7.1.2014, 20:07 |
Герб Саттер. Новые сложные задачи для С++. Hurb Sutter. Exceptional C++ (или More Exceptioanl C++) глава "Почему невозможна частичная перегрузка шаблонов функций". Лучше не напишешь и не объяснишь, после этого можешь рассуждать (там чёткая база) |