迅雷的笔试题,怎么在VC++6.0上编译报错呢

abcdef0966 2009-10-09 09:09:34
#include <iostream>
using namespace std;

struct IU
{
virtual void QI(void **p) = 0;
};
struct IA : public IU
{
virtual void func() = 0;
};
struct IB : public IU
{
virtual void func() = 0;
};
class C : public IA, public IB
{
public:
void IA::func() // 此处报错
{
cout << "IA func" << endl;
}
void IB::func() //此处报错
{
cout << "IB func" << endl;
}
void QI(void **p)
{
*p = (IA*)this;
}
};

void main()
{
C c;
IB *pB = &c;
IA *pA;
pB->QI((void**)&pA);
pA->func();
pB->func();
}
...全文
267 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wensheng_zh2007 2009-10-10
  • 打赏
  • 举报
回复
类继承结构体,少见啊
lihan6415151528 2009-10-10
  • 打赏
  • 举报
回复
在vs2005里面没事
cattycat 2009-10-10
  • 打赏
  • 举报
回复
void IA::func() // 此处报错
{
cout < < "IA func" < < endl;
}
void IB::func() //此处报错
{
cout < < "IB func" < < endl;
}
这样不行吧,实现的时候不能前面加IA::或者IB::。另外,到时候C的对象调用这个函数不知道调用哪一个。
qhd_kw 2009-10-10
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wendll 的回复:]
virtual void func() = 0;
既然定义了纯虚函数为什么还要写它的实现?
[/Quote]

有时派生类在实现纯虚函数时,会做许多同样的工作,造成代码重复。因此,可以在基类里面实现这些共同的部分,然后派生类在重写虚函数时,先调用基类的实现,再定义自己的特性实现。
qhd_kw 2009-10-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 solar_ambitious 的回复:]
纯虚函数能这么用吗?

[/Quote]

在类声明中声明并定义继承自不同类的同名函数func()。
qhd_kw 2009-10-10
  • 打赏
  • 举报
回复
vs2005编译没错
wesweeky 2009-10-10
  • 打赏
  • 举报
回复
纯粹的不懂
wendll 2009-10-10
  • 打赏
  • 举报
回复
virtual void func() = 0;
既然定义了纯虚函数为什么还要写它的实现?
largep 2009-10-10
  • 打赏
  • 举报
回复
vs2005编译没错,下面的void main不要用。
ProgrammerNO1 2009-10-10
  • 打赏
  • 举报
回复
compile re de huo
olncy 2009-10-10
  • 打赏
  • 举报
回复
哈哈,你是从别的地方直接复制过来的吧" << "是不能分开的哦(中间不能有空格)
solar_ambitious 2009-10-09
  • 打赏
  • 举报
回复
纯虚函数能这么用吗?
delphiwcdj 2009-10-09
  • 打赏
  • 举报
回复
明天看下
mengde007 2009-10-09
  • 打赏
  • 举报
回复
你到底是想重载还是怎么着;
abcdef0966 2009-10-09
  • 打赏
  • 举报
回复
顶下

64,683

社区成员

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

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