我希望这是一个简单的问题。在C++中继承抽象类和类实现
我可以同时继承一个抽象类和它的实现吗?也就是说,下面可以工作吗?
class A {
virtual void func1() = 0;
}
class B {
void func1() { /* implementation here */ }
}
class C : public A, public B {
}
我已经尝试了一些变化,和我越来越但是编译错误抱怨类C.未实现的方法,我可以节省大量重复的代码,如果我可以做这项工作。可能吗?
我解决了这个通过创建一个“复合类”叫d,从一个&乙继承,而是包含以前包含在B的实现代码这让我继承模型不干净,但它不解决问题需要代码复制。而且,正如我在下面的评论中指出的那样,这使得我的命名规则非常糟糕。从A
class A {
virtual void func1() = 0;
}
class B {
// Other stuff
}
class D : public A, public B {
void func1() { /* implementation here */ }
}
class C : public D {
}
嗯,我想我们已经缩小了问题的范围,找到一个好的命名约定: class LuaPolygonalGameObject:public GameObject,public Polygon,public LuaItem // Composite class yuck!但它确实编译! – Watusimoto 2010-03-03 07:47:50