
C++ alapok
C++ main függvény
Mielőtt belevágnánk a C++ témába, rakjunk rendet: mi az a forrásfájl, a C++ main függvény, hogyan néz ki a programváz, mik azok a headerek (#include <...>) és mit ad a C++ stardard library.
Ha a környezeted még nincs kész, itt a két útmutató hozzá:
– Dev-C++ telepítés, beállítás
– Dev-C++ használata (projekt, fájl, futtatás)
A Dev-C++-t innen is le tudod tölteni: Embarcadero hivatalos oldala
A legkisebb, már hasznos C++ program

A C++ main függvény mindig int típussal tér vissza A return 0; státuszkód: az operációs rendszernek üzen, hogy a program sikeresen lefutott.
Az #include <iostream> fejléccel kapjuk meg a be-/kimeneti eszközöket (pl.: std::cout)
Mi történt, amikor lefuttattad a "Hello, C++"-t?
1. Előfeldolgozás - #include
Az #include <iostream> olyan, mintha a fordítás előtt a fordító bemásolná az iostream fejléc tartalmát a fájlod elejére. Ez a fejléc adja a std::cout (kiírás), std::cin (beolvasás) neveit. Ha ezt elhagyod, a fordító nem tudja, mi az a std::cout -> hibára fog futni.
2. Fordítás - ellenőrzés és gépi kód
A fordító végigmegy a kódon: jók-e a szintaktikai szabályok (pontosvessző, kapcsos zárójelek, létező nevek stb.) Ha rendben, a kódból objektumkód lesz.
3. Linkelés - összerakás
A linker hozzákapcsolja a programodhoz a szükséges kész elemeket a standard libraryból (pl. ami a std::cout mögött dolgozik). Ebből lesz a futtatható fájl.
4. Futtatás - indul a main()
A programod mindig a main() függvény elején indul. Soronként lefutnak az utasítások:
kiírja a szöveget
majd a return 0; - ezzel státuszkódot ad vissza az operációs rendszernek. Ha egyezik, azaz 0, akkor siker, ha nem 0, akkor valami gond adódott. A Dev-C++ a futás végén azt írta: "Process exited with return value 0" -> a program rendben lefutott
C++ main függvény előtt: include és a standard library
1. #include <...>
Előre megírt eszközök neveit hozod be, (most iostream az I/O-hoz). Mit érdemes ehhez még megjegyezni?
iostream - kiírás a képernyőre (cout), beolvasás a billyentyűzetről (cin)
string - szöveg tárolásához, pl.: neveknél, országkódoknál, fájlneveknél. Például:
#include <string>
std::string nev = "Kata";
nev += " Kovacs"; //összefűzés
vector - rugalmas tömb, mely nőhet, csökkenhet. Akkor használd, ha nem tudod, hány elemed lesz (pl. beolvasás fájlból)
limits - a std::numeric_limits családot adja. Gyakran cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n') mintához használjuk, amikor a bemeneti pufferből ki akarjuk dobni a maradékot (például egy szám után maradt entert)
iomanip - szép kiírás, oszlopszélesség, tizedesek száma, hex/dec. stb. Táblázatos kiírásoknál használd, pénzösszeg formázásánál, statisztikánál
cmath - matekos függvényeknél hasznos, sqrt, pow, abs, sin stb.
fstream - fájlolvasáshozs és -íráshoz (ifstream, ofstream). Akkor használd, ha a feladat fájlból kér adatot.
algorithm - rendezésnél, min/max keresésnél, darabszámolásnál hasznos: sort, min_element, max_element, count_if stb.
set - elemek gyűjtéséhez hasznos, duplikátum nélkül, automatikusan elrendezve
map - képzeld el, hogy vannak címkés dobozaid. Minden doboz címkéje a kulcs, a dobozban levő tartalom pedig az érték. A kulcsok egyediek, egy címke csak egyszer szerepelhet, pl HUN - országkód, érték: hány magyar versenyző van. Akkor használd, ha össze akarsz kapcsolni két dolgot: a kulcsot az értékkel, pl.: nemzetet - darabszámmal, rajtszámot - versenyzői adatokkal
sstream - ha egy sorban több adat van és kényelmesen szét szeretnéd bontani
cctype - karaktervizsgálat. Bemenet ellenőrzésnél (szám-e), normalizálásnál (kisbetűsítés)
array - fix méretű, "biztonságosabb" tömb, ha tényleg fix a méret. Például tudod, hogy 5 elemet tartalmaz és nem kell nőnie.
Fontos, hogy csak az include-old, amit tényleg használsz, hogy a jód tisztább és a fordítás gyorsabb legyen. Ezekről majd később lesz szó bővebben, most csak néhányat kiemeltem, ami fontos lehet.
2. mi az az std:: ?
A standard library elemei az std névtérben vannak: std::cout, std::cin, std::string, std::vector ...
Kezdőként inkább írd ki az std::-ot, egyértelműbb és elkerülöd az ütközéseket.
C++ main függvény
Minden C++ program kötelező belépési pontja a main() függvény, itt indul az egész programozás.
A függvény négy részből áll:
1. Visszatérési típus - amikor egy függvény lefut, valamit visszaadhat annak, aki meghívta. Ennek a "valaminek" előre megmondjuk a típusát - ez a visszatérési típus. Lehet:
-
-
- int > egész számot ad vissza (hányat dobtál a dobókockával?)
- double > valós számot ad vissza (mennyi volt az átlagpontszám?)
- bool > igaz/hamis értéket ad vissza (páros szám?)
- std::string > szöveget ad vissza (köszönés szövege)
- void > nem ad vissza értéket, csak elvégez valamit (csak történik valami, nem hoz semmit vissza, pl Kapcsold fel a villanyt)
-
Példa:
int duplaz(int x) {
return 2 * x;
}
//visszatérünk az x kétszeresével (egész szám)
bool paros(int n) {
return n % 2 == 0;
}
//n: egy változó. A függvény ide kapja meg a számot, amit ellenőriznünk kell.
% - maradékos osztás. pl. a % b = maradék. ha 8%2=0 (nem marad semmi, tehát páros). ha 13%2=1
== egyenlőségvizsgálat. Kérdés a gépnek: egyenló-e a jobb és a bal oldal. n%2 == 0 akkor igaz, ha az osztás maradéka 0
#include <string>
std::string udvozol(const std::string& nev) {
return "Szia, " + nev + "!";
}
#include <iostream>
void kiirSzoveg(const std::string& s) {
std::cout << s << '\n';
}
//void - nincs visszatérési érték. A függvény csak elvégez valamit (kiír valamit itt a képernyőre és kész).
kiirSzoveg - a függvény neve
Mit tudsz most?
- mi a forrásfájl és a header, hogyan hozunk be eszközöket az #include <...> - val
- mi a standard library és az std:: névtér szerepe
- a main() a belépési pont; int státuszkódot ad vissza (0=siker)
Szuper munka!
Ha a C++ main függvény és a programváz világos, ugorjunk tovább az adatok kiírására és beolvasására:
➡️ Következő lecke: C++ be- és kimenet – cout, cin (iostream) »
⬅️ Vissza az áttekintő oldalra: C++ alapok – összes lecke »

