У меня проблемы при разработке таких классов, как этот
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. В действительности каждый класс Derived имеет около 5 членов, все они предоставляют метод foo () и являются производными от одного базового класса. Моя ситуация такова, что я уже написал (очень длинный) метод Update (), и он может работать для любого производного класса без каких-либо изменений. Поэтому я просто копирую и вставляю этот Update () в каждый новый класс Update (), и это приводит к ужасному дублированию кода. Интересно, есть ли способ, которым мне не нужно переписывать Update () слишком много, и это может уменьшить дублирование.
спасибо еще раз