🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Esercizi Ereditarietà C++

Codegrind TeamJul 22 2023

Ecco degli esercizi semplici con soluzione per praticare le basi dell’ereditarietà delle classi in C++.

Esercizio 1

Crea una classe base Figura con un membro protetto colore e un metodo pubblico impostaColore che imposta il colore della figura.
#include <iostream>
#include <string>
using namespace std;

class Figura {
protected:
    string colore;

public:
    void impostaColore(string newColore) {
        colore = newColore;
    }
};

int main() {
    Figura f;
    f.impostaColore("rosso");

    return 0;
}

Esercizio 2

Crea una classe derivata Cerchio dalla classe Figura con un membro privato raggio e un metodo pubblico calcolaArea che calcola e restituisce l'area del cerchio.
#include <iostream>
using namespace std;

class Figura {
protected:
    string colore;

public:
    void impostaColore(string newColore) {
        colore = newColore;
    }
};

class Cerchio : public Figura {
private:
    double raggio;

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

int main() {
    Cerchio c;
    c.impostaColore("rosso");
    double area = c.calcolaArea();

    return 0;
}

Esercizio 3

Crea una classe base Veicolo con membri protetti marca e annoProduzione e un metodo pubblico impostaMarca che imposta la marca del veicolo.
#include <iostream>
#include <string>
using namespace std;

class Veicolo {
protected:
    string marca;
    int annoProduzione;

public:
    void impostaMarca(string newMarca) {
        marca = newMarca;
    }
};

int main() {
    Veicolo v;
    v.impostaMarca("Fiat");

    return 0;
}

Esercizio 4

Crea una classe derivata Automobile dalla classe Veicolo con un membro privato modello e un metodo pubblico impostaModello che imposta il modello dell'automobile.
#include <iostream>
#include <string>
using namespace std;

class Veicolo {
protected:
    string marca;
    int annoProduzione;

public:
    void impostaMarca(string newMarca) {
        marca = newMarca;
    }
};

class Automobile : public Veicolo {
private:
    string modello;

public:
    void impostaModello(string newModello) {
        modello = newModello;
    }
};

int main() {
    Automobile a;
    a.impostaMarca("Fiat");
    a.impostaModello("Panda");

    return 0;
}

Esercizio 5

Crea una classe base Animale con un membro protetto nome e un metodo pubblico impostaNome che imposta il nome dell'animale.
#include <iostream>
#include <string>
using namespace std;

class Animale {
protected:
    string nome;

public:
    void impostaNome(string newNome) {
        nome = newNome;
    }
};

int main() {
    Animale a;
    a.impostaNome("Fido");

    return 0;
}

Esercizio 6

Crea una classe derivata Cane dalla classe Animale con un membro privato razza e un metodo pubblico impostaRazza che imposta la razza del cane.
#include <iostream>
#include <string>
using namespace std;

class Animale {
protected:
    string nome;

public:
    void impostaNome(string newNome) {
        nome = newNome;
    }
};

class Cane : public Animale {
private:
    string razza;

public:
    void impostaRazza(string newRazza) {
        razza = newRazza;
    }
};

int main() {
    Cane c;
    c.impostaNome("Fido");
    c.impostaRazza("Labrador");

    return 0;
}

Esercizio 7

Crea una classe base Persona con membri protetti nome e cognome e un metodo pubblico impostaNome che imposta il nome della persona.
#include <iostream>
#include <string>
using namespace std;

class Persona {
protected:
    string nome;
    string cognome;

public:
    void impostaNome(string newNome) {
        nome = newNome;
    }
};

int main() {
    Persona p;
    p.impostaNome("Mario");

    return 0;
}

Esercizio 8

Crea una classe derivata Studente dalla classe Persona con un membro privato matricola e un metodo pubblico impostaMatricola che imposta la matricola dello studente.
#include <iostream>
#include <string>
using namespace std;

class Persona {
protected:
    string nome;
    string cognome;

public:
    void impostaNome(string newNome) {
        nome = newNome;
    }
};

class Studente : public Persona {
private:
    string matricola;

public:
    void impostaMatricola(string newMatricola) {
        matricola = newMatricola;
    }
};

int main() {
    Studente s;
    s.impostaNome("Mario");
    s.impostaMatricola("12345");

    return 0;
}

Esercizio 9

Crea una classe base Prodotto con membri protetti nome e prezzo e un metodo pubblico impostaNome che imposta il nome del prodotto.
#include <iostream>
#include <string>
using namespace std;

class Prodotto {
protected:
    string nome;
    double prezzo;

public:
    void impostaNome(string newNome) {
        nome = newNome;
    }
};

int main() {
    Prodotto p;
    p.impostaNome("Computer");

    return 0;
}

Esercizio 10

Crea una classe derivata Libro dalla classe Prodotto con un membro privato autore e un metodo pubblico impostaAutore che imposta l'autore del libro.
#include <iostream>
#include <string>
using namespace std;

class Prodotto {
protected:
    string nome;
    double prezzo;

public:
    void impostaNome(string newNome) {
        nome = newNome;
    }
};

class Libro : public Prodotto {
private:
    string autore;

public:
    void impostaAutore(string newAutore) {
        autore = newAutore;
    }
};

int main() {
    Libro l;
    l.impostaNome("Il Signore degli Anelli");
    l.impostaAutore("J.R.R. Tolkien");

    return 0;
}