我在设计这样的课程时遇到了麻烦
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;
}
两个 Derived 类的 Update() 完全相同,但成员的类型不同。所以我必须为每个新的派生类复制更新实现。
这是减少这种代码重复的一种方法吗?我只提出了一个带有宏的解决方案。我认为有一种更优雅的方法可以用模板解决这个问题,但我想不通..
编辑: 非常感谢大家,但我想我错过了一些东西..
1.我用的是c++
2.实际上每个 Derived 类有大约 5 个成员,它们都提供 foo() 方法并且派生自同一个基类。我的情况是我已经编写了一个(很长的)Update() 方法,它可以在每个派生类中工作而无需任何修改。所以我只是将这个 Update() 复制并粘贴到每个新类的 Update() 中,这会导致可怕的代码重复。我想知道是否有一种方法不需要我过多地重写 Update() 并且可以减少重复。
再次感谢