Se una classe con una funzione virtual viene ereditata, tale funzione può essere ridefinita.

Esempio:
codice:
class Base {
public:
virtual void funzione() {
    cout << "In class Base!";
};

class Derivata : public Base
{
public:
// Ridefinisce la funzione!
void funzione {
    cout << "In classe Derived!!! ;-)";
};

void main() {
    Base o1;
    Derivata o2;
    o1.funzione();
    o2.funzione();
}