Resurse C/C++ pentru incepatori
I) Tool-uri (compilatoare, IDE-uri, medii integrate)
Asigurati-va ca folositi un compilator C++ ce implementeaza standardul ISO/ANSI.
Acest lucru este foarte important. Chiar daca la scoala folositi versiuni vechi de Borland C++, evitati sa le folositi pentru altceva decat teme.
Exista compilatoare gratuite, disponibile pentru diverse sisteme de operare:
1) Visual C++ 2008 Express Edition, produs de firma Microsoft
Disponibil la adresa:http://www.microsoft.com/Express/VC/
Intr-un singur pachet sunt livrate tool-urile necesare pentru a scrie programe in limbajul C++, pentru platforma Windows (compilator, debugger, IDE)
Compilatorul livrat este unul din cele mai bune compilatoare de C++. IDE-ul este excelent.
2) MinGW
Disponibil la adresa:http://www.mingw.org/
Este un port al GCC (GNU compiler collection) si GNU Binutils pe platforma Windows.
Tool-urile GNU sunt folosite in prinicipal pe sisteme Unix/Linux. Totusi, au fost portate pe platormele majore (inclusiv pe majoritatea platformelor "embedded").
Exista multe IDE-uri care functioneaza cu tool-urile de la GNU. Multe din ele sunt "cross platform", insemnand ca au versiuni disponibile pentru mai multe sisteme de operare.
Dintre cele mai populare IDE-uri, ce pot functiona cu tool-urile de la GNU, enumeram:
- Code::Blocks
Disponibil la adresa http://www.codeblocks.org/
Are versiuni de Windows, Unix/Linux si Mac OS X. Este unul dintre cele mai populare IDE-uri de C++
- CodeLite
Disponibil la adresa: http://codelite.org/
De asemenea, are versiuni de Windows, Unix/Linux si Mac OS X. Este un IDE ceva mai nou decat Code::Blocks, care a evoluat (si continua sa evolueze) foarte rapid.
- DevCPP
Disponibil la adresa:http://www.bloodshed.net/devcpp.html
Un IDE destinat utilizatorilor windows, scris in Delphi. Este destul de mult folosit. Ca o parere personala, IDE-ul DevCPP-ului nu este la fel de puternic precum Code::Blocks
- Eclipse
Disponibil la adresa: http://www.eclipse.org
O mediu integrat open-source, sprijinit si promovat de catre mari vendori in domeniul software (cel mai important fiind IBM).
Ofera tool-uri pentru o sumedenie de limbaje, nu numai C/C++. In prinicipal se adreseaza dezvoltatorilor Java, dar si suportul pentru C++ este destul de bun.
Eclipse este scris in Java si ruleaza pe majoritatea sistemelor de operare majore (Windows, Unix/Linux, etc)
- NetBeans
Disponibil la adresa: http://netbeans.org/
Un mediu integrat produs de catre firma Sun Microsystems. Ca si Eclipse, se adreseaza in principal dezvoltatorilor Java, dar are ofera, de asemenea, tool-uri pentru multe limbaje de programare si scripting.
Este scris in Java si este multi-platorma. Este semnificativ mai lent decat Eclipse, fiind scris in Java folosind toolkit-ul Swing.
- Qt Creator
Produs de catre Nokia si disponibil la adresa:http://qt.nokia.com/
Un IDE ce se adreseaza dezvoltatorilor C++ folosind Qt (un framework destinat dezvoltarii de aplicatii C++ portabile)
Pe platformele Unix/Linux, mai exista si alte IDE-uri populare. Probabil cel mai cunoscut fiind KDevelop
(http://www.kdevelop.org/)
II) Documentatie
O intrebare frecventa, printre cei ce doresc sa inceapa studiul limbajelor C/C++, este urmatoarea: "Ce carti sunt recomandate incepatorilor ?".
In primul rand, ar trebui sa fii capabil sa intelegi limba engleza.
O carte foarte buna, pentru cei ce nu au experienta in alte limbaje de programare, este urmatoarea:
- Programming -- Principles and Practice Using C++ (http://www2.research.att.com/~bs/programming.html)
Cartea este scrisa de catre Bjarne Stroupstrup, creatorul limbajului C++
Pentru cei care au o experienta limitata in programare, folosind alte limbaje, recomand sa citeasca Thinking in C++, scrisa de catre Bruce Eckel. Cartea este disponibila gratuit pe Internet, putand fi descarcata de la adresa: http://www.mindview.net/Books/DownloadSites
Dupa Thinking in C++, recomand The C++ Programming Language, Third Edition, scrisa de Bjarne Stroupstrup. Este cartea de baza a programatorului C++.
Pentru un nivel mediu-avansat, recomand seria C++ In-Depth. Gasiti detalii aici: http://www.pearsoned.co.uk/Bookshop/sub%20...%20?item=6893
Pentru cei care sunt interesati de limbajul C, nu C++, nu exista inlocuitor pentru cartea The C programming language, de Kernighan si Ritchie.
III) API-uri, librarii, framework-uri
O alta intrebare frecventa este urmatoarea: "Cum pot face o aplicatie GUI in C/C++ ? M-am saturat de aplicatiile in consola"
Aici, pot exista mai multe raspunsuri.
Pe sisteme Windows se poate folosi direct WinAPI (un tutorial bun se gaseste aici: http://www.winprog.org/tutorial/)
Pentru cei care doresc sa foloseasc un framework obiect orientat, in loc sa foloseasc direct WinAPI, exista mai multe alternative:
- MFC - (Microsoft Foundation Classes)
Un framework scris in C++, peste WinAPI. Este cel mai folosit framework C++, pentru constructia de aplicatii pe platforme Windows
- SmartWin++ (http://smartwin.sourceforge.net/)
Un layer obiect orientat, minimal, peste WinAPI
- wxWidgets (http://wxwidgets.org/)
Un framework C++, multi-platforma
Permite realizarea de programe C++, portabile (la nivel de surse) pe Windows, Unix/Linux, Mac OS X. Nu e restrans doar la GUI, are si alte componente (exemplu abstractii ale sistemului de fisiere, stream-uri, socket-uri, etc).
Pe sisteme Windows, este un layer peste WinAPI. Pe sisteme Unix/Linux, poate fi compilat ca layer peste GTK+, Motif, sau direct peste X (doar port-ul GTK+ este totusi stabil).
- Qt (http://qt.nokia.com/)
Framework destinat dezvoltarii de aplicatii C++ portabile (la nivel de sursa) pe Windows, Unix/Linux. Mac OS X si pe diverse platforme embedded. E un framework foarte mare, acoperind un domeniu vast (GUI, containere, programare client-server, acces la baze de date, etc). Este framework-ul care sta in spatele KDE-ului (http://www.kde.org/).
Ca o parere personala, este framework-ul C++ cu cel mai bun design si cea mai buna documentatie, din cate am folosit.

