Cos’è la programmazione ad oggetti?
La
programmazione orientata agli oggetti (
OOP,
Object
Oriented
Programming) è un paradigma di programmazione che permette di definire oggetti software in grado di interagire gli uni con gli altri attraverso lo scambio di messaggi. È particolarmente adatta nei contesti in cui si possono definire delle relazioni di interdipendenza tra i concetti da modellare (contenimento, uso, specializzazione). Un ambito che più di altri riesce a sfruttare i vantaggi della programmazione ad oggetti è quello delle interfacce grafiche.
Alcuni vantaggi della programmazione orientata agli oggetti:
- fornisce un supporto naturale alla modellazione software degli oggetti del mondo reale o del modello astratto da riprodurre
- permette una più facile gestione e manutenzione di progetti di grandi dimensioni
- l’organizzazione del codice sotto forma di classi favorisce la modularità e il riuso del codice
_____________________________________________________________________________________________________________________________________________________________________________________
L'ambiente di sviluppo
Dev-C++ di
Bloodshed è un IDE leggero, sufficiente per seguire questa guida e piuttosto aderente agli standard, fornisce un frontend per gcc, il compilatore open source per eccellenza.
Scaricate quindi Dev-C++ tramite il seguente link e installatelo:
http://www.bloodshed.net/devcpp.htmlUna volta installato, cerchiamo di capire come iniziare a creare i propri programmi:
- Andare in “File –> Nuovo –> Progetto”
- Selezionare “Console Application”, dare un nome al progetto, impostare il linguaggio su C++ e cliccare su OK
- Dopo aver scritto il codice sorgente del programma, per lanciare la compilazione ed eseguire il programma possiamo andare in “Esegui –> Compile ed Esegui” o semplicemente premere F9
_____________________________________________________________________________________________________________________________________________________________________________________
Il primo programma e gli elementi fondamentali
Dopo aver creato un nuovo progetto, inserire il seguente codice nel source del programma:
- Codice: Seleziona tutto
// main.cpp
// Il primo esempio in C++
#include <iostream>
intmain(intargc, char*argv[])
{
std::cout << "Ciao Mondo";
return 0;
}
Compilare e infine eseguire il programma. Se tutto è andato per il verso giusto, dovrebbe apparire una piccola console al cui interno è presente la scritta “Ciao Mondo”.
Se qualcosa è invece andato storto, l’applicazione non si avvierà e il compilatore indicherà le righe di codice in cui sono stati riscontrati degli errori.
In ogni caso, questa piccola porzione di codice contiene già numerose novità… vediamole una alla volta.
_____________________________________________________________________________________________________________________________________________________________________________________
I commenti
- Codice: Seleziona tutto
// main.cpp
// Il primo esempio in C++
Ogni programma ben realizzato dovrebbe includere dei commenti, per garantire una manutenzione agevole del codice: spesso capita di dover modificare codice altrui, oppure di dover riprendere in mano del vecchio codice e ricordarne il funzionamento. Per questo scrivendo un commento è utile non dare tutto troppo per scontato.
In
C++ una linea di codice commentata è preceduta dalla doppia barra
//.
Esiste, anche un secondo tipo di commento: il
commento a blocchi, ereditato dal C. In questo caso, un commento inizia con i simboli /* e termina con i simboli */. La differenza sostanziale è che il commento a blocchi permette di commentare più linee di codice senza dover ripetere ad ogni linea i simboli del commento stesso.
I due tipi di commenti sono assolutamente intercambiabili. Se c’è necessità di commentare parecchie linee di codice consecutive è conveniente ricorrere al commento a blocchi.
_____________________________________________________________________________________________________________________________________________________________________________________
#include
L’istruzione:
- Codice: Seleziona tutto
#include <iostream>
Rappresenta una delle funzionalità tipiche del C++, nota come istruzione per il preprocessore. Una istruzione per il preprocessore è, fondamentalmente, una istruzione di precompilazione.
#include in C contiene un richiamo ai file di intestazione (header con estensione .h) delle librerie che utilizziamo. Nello standard C++ si omette l’estensione, per questo troviamo, tra parentesi angolari, “iostream” e non “iostream.h“
_____________________________________________________________________________________________________________________________________________________________________________________
main
Dopo l’istruzione
#include si trova la dichiarazione della funzione
main():
- Codice: Seleziona tutto
main()
{
// ... codice
return 0;
}
Ogni programma C++ ha al suo interno una sequenza di operazioni e di funzioni. Tutti i programmi C++ devono contenere una funzione chiamata main(). Tale funzione rappresenta il punto di inizio dell’esecuzione del programma che termina con l’istruzione return 0.
Possiamo prevedere che il nostro programma prenda in ingresso degli argomenti (eg. dalla riga di comando). Possiamo utilizzare questi argomenti esterni grazie alle variabili:
- int argc – ARGuments Counter – è un valore intero che indica il numero di argomenti presenti
- char *argv[] – ARGuments Vector – è un array di stringhe che contiene i valori degli argomenti
Le
parentesi graffe { e } contengono blocchi di istruzioni. I blocchi di istruzioni possono consistere nella definizione del corpo di una funzione (come accade nel nostro caso per la funzione main() ) oppure nel riunire più linee di codice che dipendono dalla stessa istruzione di controllo, come nel caso in cui diverse istruzioni vengono eseguite a seconda dela validità o meno del test di un’istruzione.
_____________________________________________________________________________________________________________________________________________________________________________________
using e namespace
Le classi delle librerie sono definite anche nel
namespace std che viene aggiunto come prefisso all’operatore cout nel nostro caso:
- Codice: Seleziona tutto
std::cout << "Ciao Mondo";
Possiamo richiamare le stesse classi e operatori utilizzando la
direttiva using e il namespace std:
- Codice: Seleziona tutto
// main.cpp
// Il primo esempio in C++
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
cout << "Ciao Mondo";
return 0;
}