scanix 2
Vuoi reagire a questo messaggio? Crea un account in pochi click o accedi per continuare.

scanix 2

community di giovani webmaster
 
IndiceUltime immaginiCercaRegistratiAccedi

 

 linguaggio c++

Andare in basso 
AutoreMessaggio
-stool-
Admin
-stool-


Messaggi : 3
Data di iscrizione : 09.05.09
Età : 27
Località : salerno

linguaggio c++ Empty
MessaggioTitolo: linguaggio c++   linguaggio c++ Icon_minitimeDom Mag 10, 2009 10:56 am

Il C++ è un linguaggio di programmazione orientato agli oggetti, con tipizzazione statica. È stato sviluppato (in origine col nome di "C con classi") da Bjarne Stroustrup ai Bell Labs nel 1983 come un miglioramento del linguaggio C. Il miglioramento iniziale è stata l'aggiunta delle classi, seguito, tra le altre cose, dalle funzioni virtuali, overloading degli operatori, ereditarietà multipla, template e gestione delle eccezioni.

È possibile scrivere programmi C validi anche come programmi C++, anche se il C non è un sottoinsieme del C++ nel senso più stretto della parola. Il C++ fu standardizzato nel 1998 (ISO/IEC 14882:1998 "Information Technology - Programming Languages - C++", aggiornato nel 2003). Una nuova versione dello standard (nota informalmente come C++0x) è in fase di preparazione.

In aggiunta al supporto alla programmazione orientata agli oggetti, il C++ è distinto dal C per il suo supporto alla programmazione generica e alla metaprogrammazione attraverso l'uso dei template.

Il C++ è molto diffuso e apprezzato, ma raramente è usato al massimo delle sue potenzialità: la semantica del C++ è molto ricca di dettagli e sfumature che condizionano il comportamento del codice, e che molto spesso i compilatori implementano in maniera scorretta o incompleta: molte delle caratteristiche dello standard ISO del linguaggio non sono ancora implementate nei compilatori attuali, anche se la situazione sta migliorando lentamente. La grande ricchezza semantica del C++, insieme alle librerie che lo accompagnano, lo rende un linguaggio estremamente espressivo e potente, ma che richiede molto tempo per venire appreso e padroneggiato completamente. Inoltre a causa della variabilità del comportamento dei compilatori nel maneggiare le funzioni più avanzate del linguaggio, i programmatori C++ che scelgono di farne uso si rivolgono ad un'architettura (processore, sistema operativo e compilatore) particolare sacrificando la portabilità su altre piattaforme.

Come il C, anche il C++ ha una libreria standard. Di particolare importanza è la Standard Template Library (STL), la parte della libreria standard che utilizza i template per implementare contenitori generici, come vettori, code, array associativi, e così via. La programmazione ne risulta molto semplificata, al prezzo di un gran lavoro del compilatore per interpretare i complessi template.

Alcuni compilatori per C++ sono: GCC (disponibile per molte piattaforme diverse), MinGW (porting di GCC per Windows) e DJGPP. Oltre a questi ci sono i compilatori commerciali come VisualC++ e il compilatore di Borland C++ Builder.


Storia del linguaggio [modifica]
Stroustrup iniziò a lavorare al C con le classi nel 1979. L'idea di creare un nuovo linguaggio ha origine nelle sue esperienze di programmazione durante la tesi di laurea. Stroustrup trovò che il Simula avesse caratteristiche utili per lo sviluppo di grossi progetti software, ma il linguaggio era troppo lento per l'utilizzo pratico, mentre il BCPL era veloce ma troppo a basso livello per lo sviluppo di grosse applicazioni. Quando Stroustrup cominciò a lavorare ai laboratori Bell, gli fu affidato il compito di analizzare il kernel di UNIX in ambito di elaborazione distribuita. Ricordandosi del lavoro della tesi, decise di aggiungere al linguaggio C alcune delle caratteristiche di Simula. Fu scelto il C perché era un linguaggio per uso generico portabile e veloce. Oltre al C ed al Simula, altri linguaggi che lo hanno ispirato sono stati l'ALGOL 68, Ada, il CLU ed il linguaggio ML. Inizialmente, le funzionalità di classe, classe derivata, controllo rigoroso dei tipi e argomento di default furono aggiunte al C con Cfront. La prima versione commerciale fu rilasciata nell'ottobre del 1985.[1]

Nel 1983 il nome del linguaggio fu cambiato da "C con classi" a C++. Furono aggiunte nuove funzionalità, tra cui funzioni virtuali, overloading di funzioni ed operatori, reference, costanti, controllo dell'utente della gestione della memoria, type checking migliorato e commenti nel nuovo stile ("//"). Nel 1985 fu pubblicata la prima edizione di The C++ programming Language, che fornì un'importante guida di riferimento del linguaggio, che non era ancora stato ufficialmente standardizzato. Nel 1989 fu rilasciata la versione 2.0 del C++, le cui novità includono l'ereditarietà multipla, le classi astratte, le funzioni membro statiche, le funzioni membro const, e i membri protetti. Nel 1990 fu pubblicato The Annotated C++ Reference Manual, che fornì le basi del futuro standard. Le ultime aggiunte di funzionalità includono i template, le eccezioni, i namespace i nuovi tipi di cast ed il tipo di dato booleano.

Così come il linguaggio, anche la libreria standard ha avuto un'evoluzione. La prima aggiunta alla libreria standard del C++ è stata la libreria dei flussi di I/O che forniva servizi sostitutivi della libreria C tradizionale (come printf e scanf). In seguito, tra le aggiunte più significative c'è la Standard Template Library.

Dopo anni di lavoro, un comitato che presentava membri della ANSI e della ISO hanno standardizzato C++ nel 1998(ISO/IEC 14882:1998). Per qualche anno seguente al rilascio ufficiale degli standard, il comitato ha seguito lo sviluppo del linguaggio e ha pubblicato nel 2003 una versione corretta dello standard. Risale invece al 2005 un report tecnico, chiamato "Technical Report 1" (abbreviato TR1) che, pur non facendo ufficialmente parte dello standard, contiene un numero di estensioni alla libreria standard previste nella prossima versione di C++. Quasi tutti i moderni compilatori C++ supportano oggigiorno il TR1

Non c'è un proprietario del linguaggio C++, che è implementabile senza dover pagare royalty. Il documento di standardizzazione stesso però è disponibile solo a pagamento.


Il nome del linguaggio
La pronuncia di C++ è [ˌsiː plʌs ˈplʌs] (all'inglese) oppure, come molti italiani dicono, "ci più più" ([ˌʧi pju ˈpju]).

Il nome fu suggerito da Rick Mascitti alla metà del 1983, quando il linguaggio veniva usato per la prima volta al di fuori dei centri di ricerca. Precedentemente il linguaggio si chiamava "C with classes" (C con classi).

Il nome è un gioco di parole con un costrutto del C (dove il doppio segno più è un operatore che ha l'effetto di incrementare il valore di una variabile) insieme con la comune convenzione di aggiungere un segno più per indicare una versione potenziata. Secondo Stroustrup: «++ è l'operatore di incremento del C... il nome esprime la natura evoluzionaria dei cambiamenti dal C». Impiegando il gioco di parole si evita anche il problema che "C+" è già stato usato per un linguaggio senza alcun nesso col C++ (senza menzionare che è comunemente associato con una valutazione meno che stellare di una performance accademica).

Quando furono chieste informalmente spiegazioni sul nome a Rick Mascitti nel 1992, ha spiegato che diede il suggerimento con spirito goliardico, e che non pensava che sarebbe divenuto il nome formale del linguaggio.


Vecchi problemi [modifica]
Tradizionalmente i compilatori C++ hanno avuto un certo numero di problemi. Lo standard del C++ non specifica l'implementazione della decorazione dei nomi, della gestione delle eccezioni e altre funzioni specifiche dell'implementazione, e ciò rende incompatibile il codice oggetto prodotto da compilatori diversi. Ci sono però standard di terze parti per particolari macchine o sistemi operativi che cercano di standardizzare i compilatori per tali piattaforme, ad esempio l'ABI per C++, ed ora molti compilatori hanno standardizzato questi elementi.

Per molti anni i diversi compilatori hanno implementato lo standard del C++ con diversi livelli di correttezza, in particolare la specializzazione parziale dei template. Le versioni recenti dei compilatori più usati supportano quasi tutto lo standard del C++ del 1998.[2]


La libreria standard
Lo standard del C++ del 1998 consiste di due parti: il nucleo del linguaggio e la libreria standard del C++; quest'ultima include la maggior parte della Standard Template Library ed una versione leggermente modificata della libreria standard del C. Esistono molte librerie per il C++ che non fanno parte dello standard; ed è possibile, usando il linking esterno, utilizzare anche le librerie scritte per il linguaggio C.

La libreria standard del C++ incorpora la libreria standard del C con alcune modifiche minori che ne permettono un uso più comodo. Un'altra importante parte della libreria del C++ è basata sulla STL, che fornisce strumenti utili come contenitori (ad esempio vettori e liste), iteratori (puntatori generalizzati) ed algoritmi per effettuare operazioni come la ricerca e l'ordinamento. Inoltre sono disponibili i (multi)set e le (multi)map (array associativi), che esportano tutti interfacce compatibili.

Come in C, le funzioni della libreria devono essere richieste usando la direttiva del precompilatore #include per includere un header standard. Il C++ fornisce sessantanove header standard, dei quali diciannove sono deprecati.

La STL era in origine una libreria di terze parti, sviluppata da HP ed in seguito da Silicon Graphics, prima che venisse incorporata nel C++ standard. Lo standard non si riferisce ad essa come alla "STL", poiché è semplicemente parte della libreria completa, ma molti continuano ad usare il termine per distinguerla dal resto della libreria (come flussi di I/O, internazionalizzazione, funzioni diagnostiche, ecc.)

La maggior parte dei compilatori forniscono anche un'implementazione della libreria standard, STL compresa. Esistono anche versioni indipendenti dal compilatore della STL, come ad esempio la STLPort.[3]


Programmi di esempio

Esempio del programma hello world che utilizza la libreria standard C++ (non l'STL), il flusso di output cout per mostrare un messaggio e termina, restituendo ("return") un valore alla funzione chiamante.

#include <iostream> // per std::cout e std::endl
using namespace std;
int main()
{
cout << "Hello World!" << endl;

return 0;
}
Nota: Lo std seguito dai quattro punti (:Smile specifica il namespace da usare per la risoluzione dei simboli del programma. In particolare std indica di usare il simbolo che si trova nel namespace standard del C++.


Somma di interi [modifica]
Semplice programma che chiede all'utente di inserire due interi, li somma e ne visualizza il risultato.

#include <iostream> // per std::cout, std::cin e std::endl
using namespace std;
int main()
{
int numero1, numero2, somma; //dichiarazione del tipo(int) e del nome delle variabili
cout << "Inserisca un numero intero" << endl; //mostra il messaggio
cin >> numero1; //salva il numero inserito dall'utente nella variabile indicata
cout << "Inserisca un altro numero intero" << endl;
cin >> numero2;
somma = numero1+numero2; //effettua la somma dei valori delle variabili
cout << somma << endl; //visualizza il valore di somma, ovvero numero1+numero2

return 0;
}

Definizione di Classe [modifica]
#include <string>
using namespace std;

class Message {
string subject_;
string from_;

public:
Message(const string& subject, const string& from) :
subject_(subject), from_(from) {}
const string& subject() const { return subject_; }
const string& from() const { return from_; }
};
Torna in alto Andare in basso
https://scanix2.elencoforum.com
 
linguaggio c++
Torna in alto 
Pagina 1 di 1

Permessi in questa sezione del forum:Non puoi rispondere agli argomenti in questo forum.
scanix 2 :: programmazione-
Vai verso: