我有一個麻煩,派生類是抽象的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