Добрый день, Лоровцы.
Подскажите какой подход выбрать, чтобы реализация была более простой и наглядной?
Привожу сокращенно код в упрощенном виде, схематично.
Есть класс А от которого унаследованы другие:
class A{
int i,j,k; // некоторые параметры
virtual void fun() = 0;
}
class B:public A{
void fun(){...}; //своя реализация
}
class B:public A{
void fun(){...}; //своя реализация
}
Есть и другой класс для сложных вычислений, который использует потомки класса А и его параметры:
class D{
void foo1(){
for (A it = iterator ...)
it->fun();
}
void foo2(){
// здесь используются параметры i,j,k класса A для вычислений
}
Как использовать класс А в классе D? Передавать через параметры или лучше эти классы связать, например, с помощью шаблонных методов?