Esercizi Ereditarietà C++
Codegrind Team•Jul 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;
}