请教接口与实现继承问题(重赏100分)
我有一个接口抽象类:Shape 有个纯虚函数:virtual Shape_Type getShapeType() = 0;,它的实现类为:ShapeImp 提供了函数:getShapeType();的实现.又有个接口抽象类:BoxShape为Shape的派生类,它有个纯虚函数:virtual float getHeight() = 0;BoxShape的实现类为:BoxShapeImp.
我的问题就是,我想让BoxShapeImp类既有已经具有实现的getShapeType()函数又可以在自身中实现getHeight()函数,BoxShapeImp类该怎么继承???用多重继承的话,像这样:class BoxShapeImp : public ShapeImp,public BoxShape {};这样实际上BoxShapImp还是一个抽象类,因为它继承的BoxShape是继承Shape,而Shape是类抽象类,所以Shape中的getShapeType()在BoxShapeImp中找不到实现代码,是无法编译通过的,我已经测试过了,但是如果我在BoxShapeImp实现了getShpeType()函数就可以编译通过,但这个函数已经在ShapeImpe类中实现了,并且我是继承了这个类的,这样getShpaeType()就要编两遍代码来实现,这种做法显然不合适.
各位大侠帮我想想有没有其它设计方法,可以解决这个问题,帮帮我,谢谢.