抽象基类可以继承抽象基类么?

power77 2008-03-24 05:21:13
class A
{
virtual void fa() = 0;
};

class B : public A
{
virtual void fb() = 0;
};

A, B实际我都想定义为interface使用,但A,B本身包含一种继承的涵义,甚至还可以有更多层次的继承,例如

class C: public A
{
virtual void fc();
};

class D: public B
{
virtual void fd();
};

class user : public B
{
void fa() { cout << "a" << endl;
void fb() { cout << "b" << endl;
}

这样可以吗?我觉得我会把我的系统搞的很乱:(
...全文
107 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
power77 2008-03-24
  • 打赏
  • 举报
回复
谢谢,但是确实实现起来很难啊。

我有一个系统,要封装一下,未来还可能换成另外一个系统,因此想加一个抽象的中间系统,有点麻烦。
paidfighting 2008-03-24
  • 打赏
  • 举报
回复
可以,而且,“一个未在派生类里定义的纯虚函数仍旧是一个纯虚函数,这种情况也将使该派生类仍为一个抽象类。”


class Base{
public:
Base()
{
cout <<"Base construct" <<endl;
}
virtual ~Base()
{
cout <<"Base descontruct" <<endl;
}
virtual void test() = 0;
};
class Child:public Base
{
int a;
public:
Child()
{
cout <<"Child construct" <<endl;
}
~Child()
{
cout <<"Child descontruct" <<endl;
}
};

int _tmain(int argc, _TCHAR* argv[])
{
Child b; //wrong!
}


  • 打赏
  • 举报
回复
语法上允许,
就看你设计的如何了。
HengStar 2008-03-24
  • 打赏
  • 举报
回复
可以的,好好把握继承层次,问题不大
xkyx_cn 2008-03-24
  • 打赏
  • 举报
回复
建议楼主先看看设计模式,先架构再动手编程吧

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧