Polimorfismo

di il
2 risposte

Polimorfismo

Ciao a tutti, mi spiegate per favore che differenza/vantaggi/svantaggi c'è tra il Polimorfismo run-time e il polimorfismo compile-time?
Sto analizzando questi 2 esempi,la prima è la classe base, ma a me sembrano uguali.. non riesco a cogliere le differenze:

Esempio di polimorfismo run-time
class Base {
public:
virtual void show() { cout<<endl<<”oggetto della classe Base”;};
};
class Derived1 : public Base{
public:
void show() { cout<<endl<<”oggetto della classe Derived1”;};
};
class Derived2 : public Base{
public:
void show() { cout<<endl<<”oggetto della classe Derived2”;};
};
#include derived.h
main()
{
Base *bp, b;
Derived1 d1;
Derived1 d2;
int choice;
cout<<endl<<”a quale oggetto vuoi visualizzare?”
cout<<endl<<”0: Base”;
cout<<endl<<”1: Derived1”;
cout<<endl<<”2: Derived2”;
cin>>choice;
switch (choice) {
case (0): bp = &b;
break;
case (1): bp = &d1;
break;
case (2): bp = &d1;
break;
}
bp->show();
};

Esempio di polimorfismo compile-time
#include derived.h
main()
{
Base b;
Derived1 d1;
Derived1 d2;
int choice;
cout<<endl<<”<quale oggetto vuoi visualizzare”
cout<<endl<<”0: Base”;
cout<<endl<<”1: Derived1”;
cout<<endl<<”2: Derived2”;
cin>>choice;
switch (choice) {
case (0): b.show();
break;
case (1): d1.show();
break;
case (2): d2.show();
break;
}
};

Grazie!!!!

2 Risposte

  • Re: Polimorfismo

    Il polimorfismo a run time è necessario quando si deve variare il comportamento del programma (o parte di esso) senza dover ricompilare.

    Il polimorfismo a compile time si usa quando si intende fissare il comportamento di un programma in fase di realizzazione/progetto.

    In ogni caso l'esempio che porti non centra nulla con la domanda che fai, in quanto il secondo caso NON è polimorfico, ma solo un caso di banale ereditarietà.

    Il polimorfismo compile time implica l'uso di template.
    Questo articolo può esserti utile:
    http://www.eptacom.net/pubblicazioni/pub_it/oopgen.htm
  • Re: Polimorfismo

    Grazie! leggo subito.
    ciao
Devi accedere o registrarti per scrivere nel forum
2 risposte