求助--抽象类的一个小程序!!!!!

hua_zhixing_ 2009-06-09 03:56:42
#include<iostream>

class Display{
public:
virtual void init()=0;
virtual void write(char* pStr)=0;
};

class Monochrome : public Display{
virtual void init();//
virtual void write(char* pStr);//
};

class ColorAdapter : public Display{
public:
virtual void write(char* pStr);//
};

class SVGA : public ColorAdapter{
public:
virtual void init();//
};

void Monochrome::init(){ }

void Monochrome::write(char *pStr){
std::cout<<"ColorAdapter: "<<pStr;
}

void SVGA::init(){ }

void g(Display* d){
d->init();
d->write("hello.\n");
}

int main(){
Monochrome mc;
SVGA svga;
g(&mc);
g(&svga);
return 1;
}

这样的错误最恼人(如下),一般是什么错误引起的呀?
error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall ColorAdapter::write(char *)" (?write@ColorAdapter@@UAEXPAD@Z)
fatal error LNK1120: 1 个无法解析的外部命令
...全文
48 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lgy_come_on 2009-06-09
  • 打赏
  • 举报
回复
include<iostream>

class Display{
public:
virtual void init()=0;
virtual void write(char* pStr)=0;
};

class Monochrome : public Display{
virtual void init();//
virtual void write(char* pStr);//
};

class ColorAdapter : public Display{
public:
virtual void write(char* pStr);//
};

class SVGA : public ColorAdapter{
public:
virtual void init();//
};

void Monochrome::init(){ }

void Monochrome::write(char *pStr){
std::cout<<"ColorAdapter: "<<pStr;
}

void SVGA::init(){ }

void ColorAdapter::write(char* pStr){ }

void g(Display* d){
d->init();
d->write("hello.\n");
}

int main(){
Monochrome mc;
SVGA svga;
g(&mc);
g(&svga);
return 1;
}

pytf 2009-06-09
  • 打赏
  • 举报
回复
virtual void write(char *)//ColorAdapter类中
这个函数你只声明了没有定义,因为基类这个函数是纯虚函数。
pytf 2009-06-09
  • 打赏
  • 举报
回复
virtual void write(char *)//ColorAdapter类中
这个函数你只声明了没有定义,因为基类这个函数是纯虚函数。
pytf 2009-06-09
  • 打赏
  • 举报
回复
virtual void write(char *)//ColorAdapter类中
这个函数你只声明了没有定义,因为基类这个函数是纯虚函数。
pengzhixi 2009-06-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 goodname 的回复:]
SVGA没有实现纯虚函数write,所以没法实例化
[/Quote]
up
goodname 2009-06-09
  • 打赏
  • 举报
回复
SVGA没有实现纯虚函数write,所以没法实例化

65,211

社区成员

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

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