Esercizi Ereditarietà C++
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;}