Есть класс A() в программе foo и класс B() в программе bar. Сейчас классы — это просто обертка над кучей функций. Часть данных у этих двух классов совпадают, но есть и отличия. Аналогично с функциями — часть полностью одинакова, часть выполняют похожие действия с некоторыми отличиями. Хочу написать единую программу, так как действия обоих классов схожи и было бы логично иметь все в одном месте и для последующей поддержки будет проще менять что-то в коде одной программы.
class A()
{
public:
int arr[1000]; // это поле полностью совпадает с полем в классе B
int foo; // это уникальное поле данных для данного класса
// код этой функции полностью совпадает с кодом в классе B
void calc()
{
for (int i = 0; i < 1000; i++) arr[i] = i;
}
// У этой функции есть небольшие отличия от аналогичной в классе B
void calc_2()
{
std::cout << arr[0];
foo = 123 + arr[1];
std::cout << foo;
}
// Уникальная функция для класса А
void calc_3()
{
arr[3] = 0xFF;
}
}
class B()
{
public:
int arr[1000];
char bar;
void calc()
{
for (int i = 0; i < 1000; i++) arr[i] = i;
}
void calc_2()
{
std::cout << arr[0];
bar = 'A';
std::cout << bar;
}
// Уникальная функция для класса B
void calc_4()
{
arr[100] = 0xAA;
}
}