|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Dec 2007
Messaggi: 113
|
[C++] errore vtable
se ho qualcosa del genere:
Codice:
//in a.h
class A
{ public:
virtual int get() const;
}
//in b.h
class B : public A
{ public:
int get() const;
}
//in b.cpp
int B::get() const { ... }
se implemento in a.cpp il metodo get, che non faccia niente ad esempio così: Codice:
int A::get() const {}
se faccio: Codice:
//a.cpp
int A::get() const {return 0}
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Se proprio il metodo get non deve essere implementato in A, puoi fare così:
Codice:
virtual int get() const=0; -A non implementa get(), -A diventa astratta, cioè non la puoi più istanziare -avrai un errore se non implementerai get() nelle classi figlie Altrimenti si, ti tocca mettere {return 0}... |
|
|
|
|
|
#3 | |
|
Member
Iscritto dal: Dec 2007
Messaggi: 113
|
Quote:
vabbe metterò il return 0.. grazie |
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Nov 2004
Messaggi: 326
|
Quote:
Secondo me "= 0" è la migliore soluzione nel tuo caso.
__________________
The problem with Troubleshooting is that often trouble shoots back... |
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Dec 2007
Messaggi: 113
|
A in realtà ha altre variabili in private... e devo costruire degli oggetti di A.. poi ci sono le classi derivate da A a cui servono i metodi virtuali di A
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:42.



















