У меня проблемы с созданием таких классов
class C1 {
public:
void foo();
}
class C2 {
public:
void foo();
}
C1 и C2 имеют один и тот же метод foo(),
class Derived1 : public Base {
public:
void Update() {
member.foo();
}
private:
C1 member;
}
class Derived2 : public Base {
public:
void Update() {
member.foo();
}
private:
C2 member;
}
Update() обоих производных классов абсолютно одинаковы, но тип члена отличается. Поэтому мне нужно скопировать реализацию Update для каждого нового производного класса.
Это способ уменьшить дублирование кода? Я только выхожу с решением с макросом. Я думаю, что есть более элегантный способ решить эту проблему с помощью шаблона, но я не могу понять.
EDIT: большое спасибо, ребята, но я думаю, что я что-то пропустил..
1. Я использую С++
2. На самом деле каждый производный класс имеет около 5 членов, все они предоставляют метод foo() и являются производными от одного и того же базового класса. Моя ситуация такова, что я уже написал (очень длинный) метод Update(), и он может работать для каждого производного класса без каких-либо изменений. Поэтому я просто копирую и вставляю этот Update() в Update() каждого нового класса, и это приводит к ужасному дублированию кода. Интересно, есть ли способ, с помощью которого мне не нужно слишком много переписывать Update() и можно уменьшить дублирование.
спасибо еще раз