以下是当前的代码设计(示例)。我怎样才能避免重复“methodParent()”(在实现两个子类)的代码而不会丢失接口类?如何在不丢失接口的情况下避免代码重复?
//Interfaces
//=======================================================
class InterfaceParent() //Interface class
{
public:
virtual void methodParent() = 0;
};
class InterfaceChild1() : public InterfaceParent //Interface class
{
public:
virtual void methodParent() = 0;
virtual void methodChild1() = 0;
};
class InterfaceChild2() : public InterfaceParent //Interface class
{
public:
virtual void methodParent() = 0;
virtual void methodChild2() = 0;
};
// Concrete Classes
//=========================================================
class Child1() : public InterfaceChild1 // Concrete Class
{
public:
void methodParent() { cout << "PARENT_METHOD"; }
void methodChild1() { cout << "CHILD_1_METHOD"; }
};
class Child2() : public InterfaceChild2 // Concrete Class
{
public:
void methodParent() { cout << "PARENT_METHOD"; }
void methodChild2() { cout << "CHILD_2_METHOD"; }
};
感谢您的帮助!
桑托斯
Stack Overflow('Can anybody suggest..')通常不允许基于观点的问题。此外,您的问题太广泛了,您可能需要针对您的每个问题分别提出问题主题。 – cybermonkey
你已经提出了“现在我的问题是:”但它没有跟随一个问题,只是一些陈述,其中一些没有意义(“接口类是必须的”)。 –
创建'class ParentImpl:public InterfaceParent',它实现'methodParent'并派生该类的子对象。您可以创建多个不同的实现。 – piotrekg2