У меня есть 6 классов, которые выполняют одинаковые действия. Я хотел бы перенести обычное поведение в общий [базовый] класс.
Есть действия, которые нужно выполнить на 6 отдельных объектах. Шесть объектов расположены в производных классах. Интуитивно понятно, что к закрытым объектам-членам можно получить доступ через дочерний (производный класс) базового класса.
Что такое шаблон C ++, который я ищу?
class Base
{
// Common behavior, operate on m_object
...
void Foo()
{
m_object.Bar();
}
};
class Derived1 : public Base
{
// No methods, use Base methods
private:
MyObject1 m_object;
}
class Derived2 : public Base
{
// No methods, use Base methods
private:
MyObject2 m_object;
}
В эту ситуацию меня загоняет: MyObject1
, MyObject2
и т. Д. Предлагают Bar()
, но не разделяют общий базовый класс. Я действительно не могу исправить вывод, потому что объекты приходят из внешней библиотеки.