Originariamente inviato da Lotti
volevo sapere se è possibile (e come si fa) il passaggio di parametri ad una funzione sfruttando il polimorfismo. esempio:
dichiarazione classi:
classe A;
classe B estende A;
dichiarazione funzione:
funzione(classe* A);
uso funzione:
var=new B;
funzione(B);
Concettualmente avviene come hai detto (la forma in cui l'hai scritto però è chiaramente sbagliata).
Es.:
codice:
#include <iostream>
using namespace std;
class A
{
public:
virtual void test ()
{
cout << "Sono in test() di A" << endl;
}
};
class B : public A
{
public:
void test ()
{
cout << "Sono in test() di B" << endl;
}
};
void funzione (A &a)
{
a.test ();
}
int main (void)
{
B b = B();
funzione (b);
return 0;
}