在c++中,如何让接口强制显式继承父接口
本帖最后由 zhfkt 于 2013-04-22 23:00:15 编辑 一般来说,接口都会定义成一个纯虚函数
class A
{
virtual void test() = 0;
};
现在我想将一个接口继承另外一个接口,然后再派生出实现类
class A
{
virtual void test() = 0;
};
class B:public A
{
};
class C:public B
{
virtual void test(){}
};
当然这样是可以编译通过的,但是可能有个缺点,就是B接口没有显式继承A接口。也就是说B中,若没有 virtual void test() = 0;
C temp;
则也可以编译通过;当然有的话也可以编译通过。所以我想问的是,在c++设计模式中,如何让一个接口显式继承另外一个接口。使得接口与接口的继承过程中,强制明确显式申明 父接口 的纯虚函数。
class A
{
virtual void test() = 0;
};
class B:public A
{
virtual void test() = 0;
};
class C:public B
{
virtual void test(){}
};
C temp;
C++ 继承 类 设计模式 接口
[解决办法]
你的B中有那个test,如果B也要显示的成为接口,你可以尝试讲A接口的衍生到派生类B中。
[解决办法]
试试
class B:public A
{
public:
using A::test;
};
[解决办法]
好像是没有办法的
[解决办法]
没看懂lz的意思,一个纯虚函数没有具体实现类的话,该类根本无法实例化。所以在语法上就已经强制要求实现接口了,没有必要做其他多余的事了吧?
[解决办法]
既然是接口,一半的做法是 class C : public A, public B..为什么要让B接口继承A接口呢。。
[解决办法]
自己把virtual void test() = 0;再写一遍。