Intelligenza Artificiale

A un certo punto non fu più la biologia a dominare il destino dell'uomo, ma il prodotto del suo cervello: la cultura.
Cosicché: "Le uniche leggi della materia sono quelle che la nostra mente deve architettare e le uniche leggi della mente sono architettate per essa dalla materia".
JAMES CLERK MAXWELL

Object Oriented in C++


Dichiarazione di Classi e Oggetti

Ecco un esempio di dichiarazione di una classe e di un oggetto in C++, senza utilizzare il costruttore:


#include <iostream>

// Definizione di una classe senza costruttore
class MiaClasse {
public:
    // Funzione membro
    void EseguiOperazione() {
        std::cout << "Operazione eseguita!" << std::endl;
    }
};

int main() {
    // Dichiarazione di un oggetto MiaClasse senza costruttore
    MiaClasse oggetto;

    // Utilizzo dell'oggetto chiamando una funzione membro
    oggetto.EseguiOperazione();

    return 0;
}

In questo esempio:

  • Viene definita la classe `MiaClasse` senza un costruttore esplicito. Poiché non viene fornito un costruttore personalizzato, viene utilizzato il costruttore di default generato automaticamente dal compilatore.
  • Nel `main()`, viene dichiarato un oggetto `oggetto` della classe `MiaClasse`.
  • Viene chiamata una funzione membro dell'oggetto attraverso l'operatore di punto (`.`).

Istanza di un oggetto usando `new` e `delete`


#include <iostream>

// Definizione di una classe senza costruttore
class MiaClasse {
public:
    // Funzione membro
    void EseguiOperazione() {
        std::cout  << "Operazione eseguita!"  << std::endl;
    }
};

int main() {
    // Dichiarazione di un puntatore a un oggetto MiaClasse
    MiaClasse* puntatoreOggetto = new MiaClasse;

    // Utilizzo del puntatore per chiamare una funzione membro
    puntatoreOggetto->EseguiOperazione();

    // Liberazione della memoria allocata dinamicamente
    delete puntatoreOggetto;

    return 0;
}

In questo esempio:

  • Nel `main()`, viene dichiarato un puntatore a un oggetto `puntatoreOggetto` della classe `MiaClasse` utilizzando `new` per l'allocazione dinamica della memoria.
  • Viene chiamata una funzione membro dell'oggetto attraverso il puntatore `puntatoreOggetto`.
  • Infine, viene utilizzato `delete` per liberare la memoria allocata dinamicamente quando l'oggetto non è più necessario.