继承问题

victor_cui 2005-05-20 04:24:56
例子如下
class A
{
public:
virtual void test() = 0;
};

class B
{
void test(){printf(" i am test");}
};

class C: public A, public B
{
void test(){B::test();}
};
在这个继承体系中,C必须实现test方法,否则编译就会失败,因为没有实现A的接口,请问有没有比较简略的写法保持上面的继承体系和接口定义,而使得C比较干净,不要重复一个test函数定义?
...全文
114 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
CPPLOVER_78 2005-05-23
  • 打赏
  • 举报
回复
不知道,帮你顶
xzgyb 2005-05-23
  • 打赏
  • 举报
回复
好像是没有

有一种访问声明
比如
using B::Test;
但他是改变基类函数的访问范围,
对于这个不好使
victor_cui 2005-05-23
  • 打赏
  • 举报
回复
原因当然我只到,我只是想请教有没有简单的方法可以避免繁杂的重写过程,例如using...或者继承的时候有没有什么关键字可以使用。
lw1a2(一刀):这位仁兄的方法倒是没错,但是这不是我想的答案,有时候这么方案也是没法接受的
chon81 2005-05-20
  • 打赏
  • 举报
回复
你的C类也直接继承了A类,所以也要你实现了。
lw1a2 2005-05-20
  • 打赏
  • 举报
回复
#include <iostream>
#include <stdio.h>
using namespace std;

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

class B:public A
{
public:
void test(){printf(" i am test");}
};

class C: public B
{
public:
//void test(){B::test();}
};

int main()
{
C c;
c.test();
system("pause");
}

64,651

社区成员

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

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