🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

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;
}