我有麻烦设计类似当此如何减少具有相同名称但类型不同的数据成员的类的代码重复?
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;
}
更新()是完全相同的,但类型的成员是不同的。 所以我必须复制每个新派生类的更新工具。
这是一种减少这种代码重复的方法吗?我只用宏解决问题。 我觉得这是有模板来解决这个更优雅的方式,但我不出来..
编辑: 感谢了很多人,但我想我错过了什么..
1。我正在使用C++
2.实际上,每个Derived类都有大约5个成员,它们都提供了foo()方法并从相同的基类派生。我的情况是,我已经编写了一个(非常长的)Update()方法,它可以在没有任何修改的情况下适用于每个派生类。所以我只是将这个Update()复制并粘贴到每个新类的Update()中,这会导致可怕的代码重复。我想知道是否有一种方法可以避免重写Update(),并且可以减少重复。
THX再次
而不是那些派生的,为什么不只是:“typedef Dervied1 CTemplateBase;”和“typedef Dervied2 CTemplateBase ;” (显然派生不再是一个好名字,但你明白了)。 –
user83255
2009-05-08 06:13:53
@ilproxil - 是的,我想这是可以接受的。但我会留下它,因为它是为了清晰起见。 – LeopardSkinPillBoxHat 2009-05-11 06:26:35