我有一个麻烦,派生类是抽象的Dialin。我不知道为什么,因为我有唯一的虚函数具有相同的参数和相同的返回类型。从我读过的,这是唯一的限制,但显然我错了。C++派生类是抽象错误
这里是我的代码:
页眉:
class Event{
class ModemSimV2;
public:
Event();
Event(const Event &e);
~Event();
virtual void process(ModemSimV2 &m) = 0;
protected:
int who; // the number of the user
int time; // when the event will occur
int what; // DIAL_IN or HANGUP
};
class Dialin : public Event{
class ModemSimV2;
public:
Dialin(int name = 0, int tm = 0);
Dialin(const Dialin &d);
~Dialin();
virtual void process(ModemSimV2 &m);
private:
int who;
int time;
int what;
};
来源:
Event::Event(){
}
Event::Event(const Event &e) {
*this = e;
}
Event::~Event() {
}
Dialin::Dialin (int name, int tm)
: time(tm), who(name) {
return;
}
Dialin::Dialin (const Dialin &d) {
*this = d;
}
Dialin::~Dialin() {
}
void Dialin::process(ModemSimV2 &m) {
}
另一方面,你并没有将'〜Event'声明为'virtual',这通常是一件坏事。 – 2012-04-10 17:01:18
哦,是的,谢谢你。我现在记得我的演讲。 – dajee 2012-04-10 17:05:06
在Linux上使用gcc 4.4.3编译我。有3个警告,但没有关于这个纯虚函数的警告。 – dbv 2012-04-10 17:09:06