PDA

View Full Version : Cosa significa questo errore???


FabryTheV
28-04-2004, 01:04
Mi è comparso oggi per la prima volta mentre usavo Overnet 0.52.

Help!:mc:

ilsensine
29-04-2004, 09:33
Complimenti, il programma è riuscito a instanziare una classe astratta :D

akyra
29-04-2004, 12:18
le classi astratte non possono avere istanze, il prog ha tentato di farlo, ed essendo impossibile creare oggetti di classi astratte ha dato quell'errore....

ilsensine
29-04-2004, 13:36
No la mia era una battuta ;)
Sta semplicemente facendo qualche porcata nel costruttore oppure distruttore di una classe base astratta. E' un grossolano errore di programmazione.
Esempio:

class foo {
public:
virtual void p() = 0;
void v() { p(); }
virtual ~foo() { v(); }
};

class bar: public foo {
public:
void p() { fprintf(stderr, "ciao\n"); }
};

int main() {
bar b;
b.v();
return 0;
}

l'output (gcc 3.2.2):

ciao
pure virtual method called