86pietro
12-11-2018, 19:18
EDIT: ho risolto, l'errore si riferiva al codice incompleto di una funzione virtual. Stranamente mi veniva segnalato solo dopo aver scritto il costr. di copia.
Sto scrivendo una classe base Attivita con variabili membro:
int PID;
char* Descrizione;
bool Started;
Ed una classe derivata Processo con var. membro:
char* NomeImmagine;
char Stato;
Ho scritto il costruttore di copia della prima come:
Attivita::Attivita(const Attivita& A){
PID=A.PID;
Descrizione=new char[strlen(A.Descrizione)+1];
strcpy(Descrizione,A.Descrizione);
Started=A.Started;
}
E non mi dà nessun problema.
Ma quando voglio ereditare il costr. di copia di Processo come:
Processo::Processo(const Processo& P):Attivita(P){
NomeImmagine=new char[strlen(P.NomeImmagine)+1];
strcpy(NomeImmagine,P.NomeImmagine);
Stato=P.Stato;
}
Compilando si apre il MakeFile.win e mi dà errore undefined reference to 'vtable for Processo'
Cos'è successo? Non mi sembra di aver fatto nessun errore.
Sto scrivendo una classe base Attivita con variabili membro:
int PID;
char* Descrizione;
bool Started;
Ed una classe derivata Processo con var. membro:
char* NomeImmagine;
char Stato;
Ho scritto il costruttore di copia della prima come:
Attivita::Attivita(const Attivita& A){
PID=A.PID;
Descrizione=new char[strlen(A.Descrizione)+1];
strcpy(Descrizione,A.Descrizione);
Started=A.Started;
}
E non mi dà nessun problema.
Ma quando voglio ereditare il costr. di copia di Processo come:
Processo::Processo(const Processo& P):Attivita(P){
NomeImmagine=new char[strlen(P.NomeImmagine)+1];
strcpy(NomeImmagine,P.NomeImmagine);
Stato=P.Stato;
}
Compilando si apre il MakeFile.win e mi dà errore undefined reference to 'vtable for Processo'
Cos'è successo? Non mi sembra di aver fatto nessun errore.