Esercizi Interfacce C++
Codegrind Team•Jul 22 2023
Ecco degli esercizi semplici con soluzione per praticare le basi delle interfacce in C++.
Esercizio 1
Crea un'interfaccia Veicolo con un metodo virtuale puro accelera che rappresenta l'azione di accelerazione del veicolo.
#include <iostream>
using namespace std;
class Veicolo {
public:
virtual void accelera() = 0;
};
int main() {
// Veicolo v; // Errore: impossibile istanziare un'interfaccia
return 0;
}
Esercizio 2
Crea una classe Automobile che implementa l'interfaccia Veicolo e implementa il metodo accelera per rappresentare l'accelerazione dell'automobile.
#include <iostream>
using namespace std;
class Veicolo {
public:
virtual void accelera() = 0;
};
class Automobile : public Veicolo {
public:
void accelera() override {
cout << "L'automobile accelera." << endl;
}
};
int main() {
Veicolo* v = new Automobile();
v->accelera();
return 0;
}
Esercizio 3
Crea una classe Moto che implementa l'interfaccia Veicolo e implementa il metodo accelera per rappresentare l'accelerazione della moto.
#include <iostream>
using namespace std;
class Veicolo {
public:
virtual void accelera() = 0;
};
class Moto : public Veicolo {
public:
void accelera() override {
cout << "La moto accelera." << endl;
}
};
int main() {
Veicolo* v = new Moto();
v->accelera();
return 0;
}
Esercizio 4
Crea un'interfaccia Suonabile con un metodo virtuale puro eseguiSuono che rappresenta l'azione di esecuzione di un suono.
#include <iostream>
using namespace std;
class Suonabile {
public:
virtual void eseguiSuono() = 0;
};
int main() {
// Suonabile s; // Errore: impossibile istanziare un'interfaccia
return 0;
}
Esercizio 5
Crea una classe Chitarra che implementa l'interfaccia Suonabile e implementa il metodo eseguiSuono per rappresentare l'esecuzione del suono di una chitarra.
#include <iostream>
using namespace std;
class Suonabile {
public:
virtual void eseguiSuono() = 0;
};
class Chitarra : public Suonabile {
public:
void eseguiSuono() override {
cout << "La chitarra suona." << endl;
}
};
int main() {
Suonabile* s = new Chitarra();
s->eseguiSuono();
return 0;
}
Esercizio 6
Crea una classe Pianoforte che implementa l'interfaccia Suonabile e implementa il metodo eseguiSuono per rappresentare l'esecuzione del suono di un pianoforte.
#include <iostream>
using namespace std;
class Suonabile {
public:
virtual void eseguiSuono() = 0;
};
class Pianoforte : public Suonabile {
public:
void eseguiSuono() override {
cout << "Il pianoforte suona." << endl;
}
};
int main() {
Suonabile* s = new Pianoforte();
s->eseguiSuono();
return 0;
}
Esercizio 7
Crea un'interfaccia Distribuibile con un metodo virtuale puro distribuisci che rappresenta l'azione di distribuzione di un oggetto.
#include <iostream>
using namespace std;
class Distribuibile {
public:
virtual void distribuisci() = 0;
};
int main() {
// Distribuibile d; // Errore: impossibile istanziare un'interfaccia
return 0;
}
Esercizio 8
Crea una classe Libro che implementa l'interfaccia Distribuibile e implementa il metodo distribuisci per rappresentare la distribuzione di un libro.
#include <iostream>
using namespace std;
class Distribuibile {
public:
virtual void distribuisci() = 0;
};
class Libro : public Distribuibile {
public:
void distribuisci() override {
cout << "Il libro viene distribuito." << endl;
}
};
int main() {
Distribuibile* d = new Libro();
d->distribuisci();
return 0;
}
Esercizio 9
Crea una classe Film che implementa l'interfaccia Distribuibile e implementa il metodo distribuisci per rappresentare la distribuzione di un film.
#include <iostream>
using namespace std;
class Distribuibile {
public:
virtual void distribuisci() = 0;
};
class Film : public Distribuibile {
public:
void distribuisci() override {
cout << "Il film viene distribuito." << endl;
}
};
int main() {
Distribuibile* d = new Film();
d->distribuisci();
return 0;
}
Esercizio 10
Crea un'interfaccia Scrivibile con un metodo virtuale puro scrivi che rappresenta l'azione di scrittura di un contenuto.
#include <iostream>
using namespace std;
class Scrivibile {
public:
virtual void scrivi() = 0;
};
int main() {
// Scrivibile s; // Errore: impossibile istanziare un'interfaccia
return 0;
}