Jump to content

Header-ët në C++

Nga Wikipedia, enciklopedia e lirë

Nëpër programe, shpeshherë nevojite përfshirja e header fajlave (fajlave të kreut) ashtu që të përdoren urdhërat, operatorët, manipulatorët dhe funksionet e gatshme të cilat i ofrojnë libraritë e C++-it. Kjo do të thotë se duhet të dijmë se çka përmbajë header fajlat, ashtu që të dijmë se çka mund të përdorim nëpër programe. Nëse dështon përfshirja e header-ave të duhet, programi nuk do të kompajlohet.

Libraria e C++ përfshinë header-at prej librarisë standarde të gjuhës C. Ato kanë emrat, si: <stdlib.h>, <string.h>, <time.h> Ju mund të përdorini këta header-a në programt në C++ por duhet të keni kujdes, pasi që përmbajtjet e tyre nuk ndodhen në namespace std, por ato ndodhen në namespace-in global. Përdorimi i këtyre header-ave të vjetër nuk preferohet në C++, sepse në të ardhmen ata mund të largohen nga standardi. C++ ofron versionet e veta të reja të këtyrë header-ave, përmbajtja e të cilëve ndodhet në namespace std. Header-ët ekuaivalent për këta të mësipërmit janë: <cstdlib>, <cstring>, <ctime> Pra, siç mund të shihet, ata nuk e përdorin prapashtesën .h dhe e kanë parashtesën “c”. Ju duhet të përdorni versionet e reja nëpër programe, përveq nëse jeni duke mirëmbajtur ndonjë kod të vjetër të shkruar në C. C++ gjithashtu prezenton disa header fajla të ri, të cilët nuk kanë ekzistuar në C, si: <iostream>, <vector>, <algorithm> Si edhe header-at e tjerë të C++, ata nuk e përdorin prapashtesën “.h”, por nuk kanë ndonjë prefiks. Nëpër literaturë do të hasen versionet e vjetra të header-ave të C++, të përdorur para standardit. Ata kanë emrat si: <iostream.h>, <fstream.h> në vend të: <iostream>, <fstream> Këto versione të vjetra nuk janë adresuar prej standardit të C++ fare. Ata nuk përjashtohen, por nuk janë header të C-së e as nuk janë pjesë e standardit të C++. Ata thjeshtë janë header-ë të vjetër, të cilët janë përdorur për një kohë të gjatë, mirëpo preferohet që tash të përdoren versionet e reja, edhe pse kompajlerët sigurisht do të vazhdojnë të përkrahin akoma versionet e vjetra, për pajtueshmëri prapavepruese. Konfuzion shkakton edhe çështja e përdorimit të të header-it për string. Ekzistojnë tre header-a për string: <string.h>, <cstring> të cilët janë të stilit të C-së (vargjet e karaktereve të përfunduara me “null” – null-terminated character arrays) dhe përmbajnë funksionet për string si:strcpy(), strcat() and strlen() si dhe <string> i cili përdoret për std::string class-at në C++. Ajo çka është me rëndësi, është se duhet të jeni në gjendje të shkruani kode të cilat e respektojnë C++ standardin, gjë që do të thotë se mund t’i kompajloni në cilindo kompajler modern të C++-it.