Linguaggio C++ e libreria Qt per lo sviluppo di programmi con interfaccia grafica
Il linguaggio C++
C++ è un linguaggio di programmazione orientato agli oggetti, con tipizzazione statica. Si pùo considerare come un’estensione del linguaggio C. I miglioramenti principali rispetto a quest’ultimo sono l’introduzione della programmazione ad oggetti, dei namespace, dell’ereditarietà multipla, delle classi astratte, della gestione delle eccezioni e dell’overloading delle funzioni. C++ comprende due componenti: il nucleo del linguaggio e la libreria standard del C++, che include una versione della libreria standard del C leggermente modificata e gran parte della Standard Template Library: una libreria di terze parti successivamente incorporata nativamente nel C++. Al contrario di quanto succede con Java un programma scritto in C++ viene compilato direttamente nel codice macchina del sistema destinatario. Per essere eseguito su piattaforme diverse richiede di essere compilato per ogni piattaforma. Inoltre utilizzando primitive e librerie di sistema i programmi C++ difficilmente possono essere utilizzati (senza modificare il codice) in sistemi diversi da quelli per i quali erano progettati inizialmente. C++ è dunque un linguaggio che consente molto controllo da parte del programmatore sul sistema e soprattutto sulla memoria. C++ non prevede il Garbage Collector quindi la gestione dinamica della memoria viene demandata interamente al programmatore tramite le primitive malloc e free. Inoltre il programmatore pùo utilizzare esplicitamente i puntatori.
La libreria Qt
La libreria Qt è una libreria multipiattaforma per lo sviluppo di programmi con interfaccia grafica che segue l’approccio “write once, compile anywhere“. Qt ha un eccellente supporto multipiattaforma per le funzioni multimediali, per la grafica 3D, l’internazionalizzazione, SQL e XML inoltre, per applicazioni specializzate, prevede estensioni specifiche per ogni piattaforma. La libreria Qt è lo standard de-facto per lo sviluppo di software C++ multipiattaforma ad alte prestazioni. In aggiunta ad un’estesa libreria di classi C++, Qt include strumenti per rendere la scrittura di applicazioni facile e lineare. Le funzionalità multipiattaforma di Qt e il suo supporto all’internazionalizzazione garantiscono che le applicazioni Qt possano raggiungere il più ampio mercato possibile. Qt include una serie di widget (o controlli) che forniscono le funzionalità standard di una GUI ed introduce una metodologia innovativa per la comunicazione tra oggetti chiamata “signal-and-slot“. Qt inoltre fornisce un modello per gli eventi convenzionale, per la gestione dei click del mouse, della pressione di un tasto, e degli altri input da parte dell’utente. Le applicazioni GUI multipiattaforma scritte in Qt possono supportare tutte le funzionalità di interfaccia utente richieste da una moderna applicazione, come menu, menu contestuali, drag and drop, e toolbars. Qt permette di creare applicazioni multipiattaforma usando i database standard in quanto include nativamente driver per Oracle, Microsoft SQL Server, Sybase, Adaptive Server, IBM DB2, PostgreSQL, MySQL, Borland Interbase, SQLite e qualsiasi altro database compatibile con ODBC.