Я пишу на С, но надо реализовать кое-что на С++ Нужна помощь сообщества.
Есть родительский класс с одним методом
class root {
void do_work();
};
От него наследуется 100500 потомков, каждый из потомков реализует свою собственную do_work()
Нужно написать функцию которая может принимать любой из потомков родительского класса и вызывает в нём do_work()
Я написал по минимуму. Вызывается метод класса root.
#include <iostream>
using namespace std;
class root
{
public:
root(void);
~root(void);
void do_job();
};
class second: public root
{
public:
second();
~second();
void do_job();
};
root::root(void) {};
root::~root(void) {};
void root::do_job(void) { cout << "ROOT do job\n"; }
second::~second(void) {};
second::second(void) {};
void second::do_job(void) { cout << "Fuck yeah!\n"; }
void work(root rt) { rt.do_job(); }
int main(int argc, char **argv)
{
root rr = root();
second sec = second();
work(sec);
return 0;
}
Это вообще реально? Как реализовывать подобное?