Deve essere qualcosa di specifico nel mio codice, che non posso pubblicare. Ma forse qualcuno può suggerire possibili cause.Il metodo C++ è visibile solo quando si esegue il cast dell'oggetto nella classe base?
Fondamentalmente ho:
class CParent
{
public:
void doIt(int x);
};
class CChild : public CParent
{
public:
void doIt(int x,int y,int z);
};
CChild *pChild = ...
pChild->doIt(123); //FAILS compiler, no method found
CParent *pParent = pChild;
pParent->doIt(123); //works fine
Come sulla terra?
EDIT: le persone parlano di ombre/nascondigli. Ma le due versioni di do hanno un numero diverso di parametri. Sicuramente questo non può confondere il compilatore, sovraccarichi in classe figlio che non possono essere confusi con la versione della classe genitore? Può esso?
L'errore del compilatore che ottengo è: errore C2660: 'CChild :: doIt': la funzione non accetta 1 argomento
Wow. Non c'è molto da fare ... –
Sono sorpreso che tu stia vedendo qualsiasi metodo. –
in fondo ho ... niente? –