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!!!!