读书人

一段代码异常有关问题 请大神给看一眼

发布时间: 2013-03-12 11:19:35 作者: rapoo

求助一段代码错误问题 请大神给看一眼
#include<iostream>
using namespace std;
class USB{
public:
//这是一个基类虚函数 接口;
virtualvoid plugin();
virtual void work();
virtual void stop();
};
//下面的USB磁盘继承 USB类
class USBDISK :public USB{
public:
void plugin(){
cout<<"plugin"<<endl;
}
void work(){
cout<<"work"<<endl;
}
void stop(){
cout<<"stop"<<endl;
}
};

class Computer{
public:
//这里我希望用多态
void use(USB* p){
p->plugin();
p->work();
p->stop();
}
};
int main(){
USBDISK d;
Computer c;
//传入 子类对象的地址 实现多态
c.use(&d);
system("pause");
}
代码到这里就开始运行,可是VS2012编译器通不过。。
1>Datebase.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall USB::plugin(void)" (?plugin@USB@@UAEXXZ)
1>Datebase.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall USB::work(void)" (?work@USB@@UAEXXZ)
1>Datebase.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall USB::stop(void)" (?stop@USB@@UAEXXZ)
1>D:\visual studio 2012\Projects\datebasetest\Debug\datebasetest.exe : fatal error LNK1120: 3 个无法解析的外部命令
这是错误的信息 请帮我看看 为什么我的代码 通不过 有错误?难道我的逻辑有问题吗?
[解决办法]

引用:
引用:注意最后的 =0
C/C++ code?1234567class USB{public://这是一个基类虚函数 接口;virtual void plugin() = 0;virtual void work() = 0;virtual void stop() = 0;};
为什么 函数要=0呢?
函数本身并不是变量啊?……

你声明了函数但没有实现它,写=0表示纯需函数,不需要实现。

你也可以简单的实现,比如

class USB{
public:
//这是一个基类虚函数 接口;
virtual void plugin() {}
virtual void work() {}
virtual void stop() {}
};

读书人网 >C++

热点推荐