🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Esercizi Polimorfismo C++

Codegrind Team•Jul 22 2023

Ecco degli esercizi semplici con soluzione per praticare le basi polimorfismo in C++.

Esercizio 1

Crea una classe base Figura con un metodo virtuale puro calcolaArea che calcola e restituisce l'area della figura.
#include <iostream>
using namespace std;

class Figura {
public:
    virtual double calcolaArea() = 0;
};

int main() {
    Figura* f;
    // f = new Quadrato();
    // f = new Cerchio();
    // ...

    return 0;
}

Esercizio 2

Crea una classe derivata Quadrato dalla classe Figura con un membro privato lato e implementa il metodo calcolaArea per calcolare e restituire l'area del quadrato.
#include <iostream>
using namespace std;

class Figura {
public:
    virtual double calcolaArea() = 0;
};

class Quadrato : public Figura {
private:
    double lato;

public:
    double calcolaArea() override {
        return lato * lato;
    }
};

int main() {
    Figura* f = new Quadrato();
    // ...

    return 0;
}

Esercizio 3

Crea una classe derivata Cerchio dalla classe Figura con un membro privato raggio e implementa il metodo calcolaArea per calcolare e restituire l'area del cerchio.
#include <iostream>
using namespace std;

class Figura {
public:
    virtual double calcolaArea() = 0;
};

class Cerchio : public Figura {
private:
    double raggio;

public:
    double calcolaArea() override {
        return 3.14159 * raggio * raggio;
    }
};

int main() {
    Figura* f = new Cerchio();
    // ...

    return 0;
}

Esercizio 4

Crea una classe base Veicolo con un metodo virtuale stampaInfo che stampa le informazioni sul veicolo.
#include <iostream>
#include <string>
using namespace std;

class Veicolo {
public:
    virtual void stampaInfo() {
        cout << "Informazioni sul veicolo." << endl;
    }
};

int main() {
    Veicolo* v;
    // v = new Automobile();
    // v = new Moto();
    // ...

    return 0;
}

Esercizio 5

Crea una classe derivata Automobile dalla classe Veicolo e implementa il metodo stampaInfo per stampare le informazioni specifiche dell'automobile.
#include <iostream>
#include <string>
using namespace std;

class Veicolo {
public:
    virtual void stampaInfo() {
        cout << "Informazioni sul veicolo." << endl;
    }
};

class Automobile : public Veicolo {
public:
    void stampaInfo() override {
        cout << "Informazioni sull'automobile." << endl;
    }
};

int main() {
    Veicolo* v = new Automobile();
    // ...

    return 0;
}

Esercizio 6

Crea una classe derivata Moto dalla classe Veicolo e implementa il metodo stampaInfo per stampare le informazioni specifiche della moto.
#include <iostream>
#include <string>
using namespace std;

class Veicolo {
public:
    virtual void stampaInfo() {
        cout << "Informazioni sul veicolo." << endl;
    }
};

class Moto : public Veicolo {
public:
    void stampaInfo() override {
        cout << "Informazioni sulla moto." << endl;
    }
};

int main() {
    Veicolo* v = new Moto();
    // ...

    return 0;
}

Esercizio 7

Crea una classe base Animale con un metodo virtuale emettiSuono che emette il suono dell'animale.
#include <iostream>
#include <string>
using namespace std;

class Animale {
public:
    virtual void emettiSuono() = 0;
};

int main() {
    Animale* a;
    // a = new Cane();
    // a = new Gatto();
    // ...

    return 0;
}

Esercizio 8

Crea una classe derivata Cane dalla classe Animale e implementa il metodo emettiSuono per emettere il suono del cane.
#include <iostream>
#include <string>
using namespace std;

class Animale {
public:
    virtual void emettiSuono() = 0;
};

class Cane : public Animale {
public:
    void emettiSuono() override {
        cout << "Il cane abbaia." << endl;
    }
};

int main() {
    Animale* a = new Cane();
    // ...

    return 0;
}

Esercizio 9

Crea una classe derivata Gatto dalla classe Animale e implementa il metodo emettiSuono per emettere il suono del gatto.
#include <iostream>
#include <string>
using namespace std;

class Animale {
public:
    virtual void emettiSuono() = 0;
};

class Gatto : public Animale {
public:
    void emettiSuono() override {
        cout << "Il gatto fa il miao." << endl;
    }
};

int main() {
    Animale* a = new Gatto();
    // ...

    return 0;
}

Esercizio 10

Crea una classe base StrumentoMusicale con un metodo virtuale eseguiSuono che esegue un suono con lo strumento musicale.
#include <iostream>
#include <string>
using namespace std;

class StrumentoMusicale {
public:
    virtual void eseguiSuono() = 0;
};

int main() {
    StrumentoMusicale* s;
    // s = new Chitarra();
    // s = new Pianoforte();
    // ...

    return 0;
}