🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Esercizi Namespace C++

Codegrind Team•Jul 12 2024

Ecco degli esercizi semplici con soluzione per praticare l’utilizzo dei namespace in C++.

Esercizio 1: Creazione di un namespace

Creare un namespace e definire una funzione all'interno di esso.
#include <iostream>

namespace MyNamespace {
    void saluta() {
        std::cout << "Ciao dal namespace!" << std::endl;
    }
}

int main() {
    MyNamespace::saluta();
    return 0;
}

Esercizio 2: Alias di namespace

Creare un alias per un namespace e utilizzare l'alias per chiamare una funzione.
#include <iostream>

namespace MyNamespace {
    void saluta() {
        std::cout << "Ciao dal namespace!" << std::endl;
    }
}

namespace MN = MyNamespace;

int main() {
    MN::saluta();
    return 0;
}

Esercizio 3: Namespace annidati

Creare un namespace annidato e definire una funzione nel namespace interno.
#include <iostream>

namespace OuterNamespace {
    namespace InnerNamespace {
        void saluta() {
            std::cout << "Ciao dal namespace interno!" << std::endl;
        }
    }
}

int main() {
    OuterNamespace::InnerNamespace::saluta();
    return 0;
}

Esercizio 4: Uso di using per importare un namespace

Utilizzare la direttiva `using` per importare un namespace e chiamare una funzione senza il prefisso del namespace.
#include <iostream>

namespace MyNamespace {
    void saluta() {
        std::cout << "Ciao dal namespace!" << std::endl;
    }
}

using namespace MyNamespace;

int main() {
    saluta();
    return 0;
}

Esercizio 5: Conflitto di nomi con namespace

Creare due namespace con funzioni con lo stesso nome e chiamare entrambe le funzioni.
#include <iostream>

namespace Namespace1 {
    void saluta() {
        std::cout << "Ciao da Namespace1!" << std::endl;
    }
}

namespace Namespace2 {
    void saluta() {
        std::cout << "Ciao da Namespace2!" << std::endl;
    }
}

int main() {
    Namespace1::saluta();
    Namespace2::saluta();
    return 0;
}

Esercizio 6: Definizione di variabili in un namespace

Definire variabili in un namespace e utilizzarle nel programma.
#include <iostream>

namespace MyNamespace {
    int valore = 10;
    void stampaValore() {
        std::cout << "Valore: " << valore << std::endl;
    }
}

int main() {
    MyNamespace::stampaValore();
    return 0;
}

Esercizio 7: Funzioni sovraccariche in un namespace

Definire funzioni sovraccariche in un namespace e chiamarle nel programma.
#include <iostream>

namespace MathOperations {
    int somma(int a, int b) {
        return a + b;
    }

    double somma(double a, double b) {
        return a + b;
    }
}

int main() {
    std::cout << "Somma di interi: " << MathOperations::somma(3, 4) << std::endl;
    std::cout << "Somma di double: " << MathOperations::somma(2.5, 3.5) << std::endl;
    return 0;
}

Esercizio 8: Namespace anonimi

Utilizzare un namespace anonimo per limitare la visibilitĂ  di una funzione all'interno di un file.
#include <iostream>

namespace {
    void saluta() {
        std::cout << "Ciao dal namespace anonimo!" << std::endl;
    }
}

int main() {
    saluta();
    return 0;
}

Esercizio 9: Namespace e classi

Definire una classe all'interno di un namespace e utilizzare la classe nel programma.
#include <iostream>

namespace Geometry {
    class Punto {
    private:
        int x, y;
    public:
        Punto(int x, int y) : x(x), y(y) {}
        void stampa() const {
            std::cout << "Punto(" << x << ", " << y << ")" << std::endl;
        }
    };
}

int main() {
    Geometry::Punto p(1, 2);
    p.stampa();
    return 0;
}

Esercizio 10: Namespace e template

Definire una funzione template all'interno di un namespace e utilizzarla nel programma.
#include <iostream>

namespace Utilities {
    template <typename T>
    T somma(T a, T b) {
        return a + b;
    }
}

int main() {
    std::cout << "Somma di interi: " << Utilities::somma(3, 4) << std::endl;
    std::cout << "Somma di double: " << Utilities::somma(2.5, 3.5) << std::endl;
    return 0;
}