У меня есть одна база и много (1..N) Производные классы, подобные этим:
class Base {
public:
virtual void OnMouseMove(int x, int y) = 0;
}
class Derived_1: public Base {
public:
void OnMouseMove(int x, int y) override;
}
class Derived_2: public Base {
public:
void OnMouseMove(int x, int y) override;
}
void Derived_1::OnMouseMove(int x, int y) {actions 1};
void Derived_2::OnMouseMove(int x, int y) {actions 2};
Все производные классы имеют такое же определение , но разные функции OnMouseMove (). Мне не нравится, как выглядит программа, потому что я должен записывать в заголовочные файлы все те же производные функции только с разными именами Derived_1, Derived_2.
Можно ли написать программу короче? Мне нужно что-то подобное:
class Derived: public Base {
public:
void OnMouseMove(int x, int y) override;
}
class Derived_1 : public Derived{};
class Derived_2 : public Derived{};
void Derived_1::OnMouseMove(int x, int y) {actions 1};
void Derived_2::OnMouseMove(int x, int y) {actions 1};