Dubbio funzioni virtuali/overload

di il
1 risposte

Dubbio funzioni virtuali/overload

Ciao,
sono nuova di questo forum, piacere!
Mi mancano pochi esami per laurearmi in scienze informatiche, e vi scrivo perchè ho un dubbio su un esercizio di programmazione in c++. L'esercizio a cui mi riferisco è il seguente:



non mi è chiaro come mai l'ultima chiamata (a->m(3.14)) nei cicli **0, **2 e **3 non stampa il rispettivo m(double) ma sempre m(int).
Qualcuno che mi illumina? Grazie!

1 Risposte

  • Re: Dubbio funzioni virtuali/overload

    La vtable è costruita sulla classe A, e solo quella conta nel tuo esempio. In quella classe però non c'è un metodo m(double), quindi il compilatore forza un cast da double a int per corrispondere ad A::m(int).

    P.S.
    mancano i delete.
Devi accedere o registrarti per scrivere nel forum
1 risposte