【发布时间】:2014-08-17 00:37:00
【问题描述】:
以下是当前的代码设计(示例)。如何避免重复“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..) 通常不允许主要基于意见的问题。此外,您的问题过于宽泛,您可能需要针对每个问题提出单独的问题线索。 -
您已经提出“现在我的问题是:”但后面没有问题,只是一些陈述,其中一些没有意义(“接口类是必须的”)。
-
创建实现
methodParent的class ParentImpl : public InterfaceParent并从该类派生孩子。您可以使用不同的实现创建多个。 -
@Santosh 仍然不正确。它们不是你的问题;你的问题是
I want to know how can I avoid code repetition without loosing the interfaces?。另外,以后请不要忽略对高级用户(例如我自己)的建议编辑,因为您的问题仍然存在错误。 -
@zyboxinternational 我已经编辑了我的问题。我希望现在好多了。感谢您的所有帮助。
标签: c++ inheritance design-patterns