U prethodnom tekstu upoznali smo osnovnu strukturu jednog C++ programa. Videli smo da čak i najjednostavniji program ima nekoliko važnih delova koji zajedno omogućavaju da program bude ispravno napisan, kompajliran i pokrenut.
U ovom tekstu detaljnije ćemo objasniti tri veoma važna elementa koja se skoro uvek pojavljuju u početničkim C++ programima:
#includenamespacemain()funkcija
Ova tri dela često zbunjuju početnike jer se pojavljuju odmah na početku programa, a ne objašnjava se uvek dovoljno jasno zašto su tu i čemu služe.
Zato ćemo ih sada objasniti korak po korak.
Primer programa koji ćemo analizirati
Pogledajmo jednostavan C++ program:
#include <iostream>
using namespace std;
int main() {
cout << "Zdravo svete!";
return 0;
}
Ovaj program ispisuje tekst:
Zdravo svete!
Iako je kratak, u njemu se nalaze tri ključna dela:
- uključivanje biblioteke,
- korišćenje namespace-a,
- glavna funkcija programa.

Šta znači #include?
Linija:
#include <iostream>
govori kompajleru da u program uključi određenu biblioteku.
Biblioteka je skup već pripremljenih funkcija, klasa i alata koje možemo koristiti u programu.
Drugim rečima, ne moramo sve praviti sami od početka. C++ već ima veliki broj gotovih biblioteka koje nam olakšavaju rad.
Biblioteka:
iostream
koristi se za osnovni unos i ispis podataka.
Zahvaljujući njoj možemo koristiti:
cout
za ispis podataka na ekran, i:
cin
za unos podataka sa tastature.
Bez #include <iostream> kompajler ne bi znao šta znače cout i cin.
Šta je biblioteka u programiranju?
Biblioteku možemo zamisliti kao kutiju sa gotovim alatima.
Na primer, ako želimo da ispišemo tekst na ekran, ne moramo sami pisati ceo mehanizam za komunikaciju sa konzolom.
Dovoljno je da uključimo biblioteku:
#include <iostream>
i onda možemo koristiti gotove alate:
cout << "Hello";
Kao što majstor koristi alat iz kutije, tako programer koristi funkcije iz biblioteka.
Zašto se koristi znak #?
Znak:
#
označava preprocesorsku direktivu.
To znači da se ova linija obrađuje pre samog kompajliranja programa.
Kada kompajler vidi:
#include <iostream>
on pre kompajliranja priprema potrebne delove biblioteke iostream.
Zato se #include obično nalazi na početku programa.
Najčešće korišćene biblioteke
Pored iostream, često ćemo koristiti i druge biblioteke.
Primeri:
#include <string>
koristi se za rad sa tekstom.
#include <cmath>
koristi se za matematičke funkcije.
#include <vector>
koristi se za rad sa dinamičkim nizovima.
#include <algorithm>
koristi se za sortiranje, pretragu i druge algoritme.
Za početak je najvažnije da zapamtimo:
#include <iostream>
jer ćemo ga koristiti u skoro svakom početničkom programu.

Šta znači namespace?
Sledeća linija u programu je:
using namespace std;
Da bismo razumeli ovu liniju, prvo moramo razumeti šta je namespace.
Namespace je prostor imena.
On služi da organizuje funkcije, klase i objekte tako da ne dođe do konflikta između istih naziva.
Na primer, u velikim programima može postojati više funkcija ili objekata sa istim imenom. Namespace pomaže da se zna kojoj grupi određeni naziv pripada.
Šta je std?
std je skraćenica za standard.
To je standardni namespace u C++ jeziku.
U njemu se nalaze mnogi elementi standardne biblioteke, kao što su:
cout
cin
string
endl
Kada napišemo:
using namespace std;
mi govorimo programu:
Koristi standardni namespace, tako da ne moramo stalno pisati std::.
Primer bez namespace-a
Ako ne napišemo:
using namespace std;
onda bismo morali pisati ovako:
#include <iostream>
int main() {
std::cout << "Hello World";
return 0;
}
Ovde koristimo:
std::cout
što znači da cout pripada standardnom namespace-u.
Primer sa namespace-om
Kada napišemo:
using namespace std;
onda možemo pisati kraće:
#include <iostream>
using namespace std;
int main() {
cout << "Hello World";
return 0;
}
Za početnike je ovaj oblik jednostavniji i pregledniji.
Da li je using namespace std obavezan?
Ne, nije obavezan.
Program može raditi i bez njega, ali tada moramo koristiti prefiks:
std::
Na primer:
std::cout
std::cin
std::endl
Na fakultetima i u početničkim primerima često se koristi:
using namespace std;
jer pojednostavljuje kod.
Kasnije, u većim profesionalnim projektima, često se izbegava zbog bolje organizacije i izbegavanja konflikta imena.
Šta je main funkcija?
Najvažniji deo svakog C++ programa je funkcija:
int main()
Ovo je glavna funkcija programa.
Izvršavanje C++ programa uvek počinje od main() funkcije.
Kada pokrenemo program, računar traži main() i počinje da izvršava naredbe koje se nalaze unutar nje.
Primer:
int main() {
cout << "Program pocinje ovde";
return 0;
}
Sve što se nalazi između vitičastih zagrada pripada funkciji main().

Zašto piše int ispred main?
U izrazu:
int main()
reč int označava da funkcija vraća celobrojnu vrednost.
Na kraju programa obično pišemo:
return 0;
To znači da se iz funkcije main() vraća broj 0.
Broj 0 najčešće označava da je program uspešno završen.
Šta znači return 0?
Naredba:
return 0;
označava kraj funkcije main() i poruku operativnom sistemu da je program završen bez greške.
Možemo to posmatrati ovako:
returnznači vrati rezultat,0znači uspešno izvršavanje.
U početničkim programima skoro uvek ćemo pisati:
return 0;
na kraju funkcije main.
Vitičaste zagrade u main funkciji
Funkcija main() ima telo programa koje se nalazi između:
{
i:
}
Primer:
int main() {
cout << "Hello";
return 0;
}
Sve naredbe između ovih zagrada izvršavaju se redom.
Ako zaboravimo neku zagradu, program neće moći da se kompajlira.
Redosled izvršavanja programa
Pogledajmo ponovo program:
#include <iostream>
using namespace std;
int main() {
cout << "Prva naredba" << endl;
cout << "Druga naredba" << endl;
return 0;
}
Kada pokrenemo program, izvršavanje ide ovim redom:
- Uključuje se biblioteka
iostream - Omogućava se korišćenje
stdnamespace-a - Program ulazi u
main() - Izvršava se prvi
cout - Izvršava se drugi
cout - Program dolazi do
return 0 - Program se završava
Najčešće greške početnika
1. Nedostaje biblioteka
Pogrešno:
using namespace std;
int main() {
cout << "Hello";
return 0;
}
Kompajler neće znati šta je cout.
Ispravno:
#include <iostream>
using namespace std;
int main() {
cout << "Hello";
return 0;
}
2. Pogrešno napisan include
Pogrešno:
include <iostream>
Ispravno:
#include <iostream>
Znak # je obavezan.
3. Pogrešno napisano namespace
Pogrešno:
using namespase std;
Ispravno:
using namespace std;
4. Nedostaje main funkcija
Pogrešno:
#include <iostream>
using namespace std;
cout << "Hello";
Ispravno:
#include <iostream>
using namespace std;
int main() {
cout << "Hello";
return 0;
}
5. Nedostaju zagrade
Pogrešno:
int main() {
cout << "Hello";
return 0;
Ispravno:
int main() {
cout << "Hello";
return 0;
}
Zašto su ova tri dela važna?
#include, namespace i main() funkcija predstavljaju osnovu skoro svakog početničkog C++ programa.
Bez biblioteke ne možemo koristiti gotove alate za unos i ispis.
Bez pravilnog namespace-a moramo pisati duže nazive.
Bez main() funkcije program nema početnu tačku izvršavanja.
Zato je važno da ih ne učimo napamet, već da razumemo njihovu ulogu.
Primer za vežbu
Pogledaj sledeći program:
#include <iostream>
using namespace std;
int main() {
cout << "Ucim C++";
return 0;
}
Pitanja:
- Koja linija uključuje biblioteku?
- Gde počinje izvršavanje programa?
- Koja naredba ispisuje tekst?
- Šta znači
return 0?
Rezime
U ovom tekstu naučili smo da svaki početnički C++ program obično sadrži tri važna dela:
#include <iostream>— uključuje biblioteku za unos i ispis,using namespace std;— omogućava kraće korišćenje standardnih komandi,int main()— označava glavnu funkciju od koje počinje izvršavanje programa.
Razumevanje ovih delova je veoma važno jer se oni pojavljuju u gotovo svakom programu koji ćemo pisati.
Mini test
- Šta radi
#include <iostream>?
a) Pokreće računar
b) Uključuje biblioteku za unos i ispis
c) Briše program - Šta predstavlja
std?
a) Standardni namespace
b) Tip podataka
c) Grešku u programu - Od koje funkcije počinje izvršavanje C++ programa?
a) start()
b) main()
c) begin() - Šta znači
return 0;?
a) Program se uspešno završava
b) Program se briše
c) Program čeka unos - Šta se dešava ako ne uključimo
iostream, a koristimocout?
a) Program radi normalno
b) Kompajler prijavljuje grešku
c) Računar se restartuje
Zadaci za vežbu
- Napiši program koji koristi
#include <iostream>i ispisuje tvoje ime. - Napiši isti program bez
using namespace std;, koristećistd::cout. - Objasni svojim rečima šta je namespace.
- Napiši program koji ima dve
coutnaredbe. - Namerno ukloni
#iz#includei pogledaj kakvu grešku prijavljuje kompajler.
Domaći zadatak
Napravi dokument u kome ćeš objasniti tri osnovna dela C++ programa:
#includeusing namespace stdint main()
Za svaki deo napiši:
- čemu služi,
- primer upotrebe,
- šta se dešava ako ga pogrešno napišemo.
