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 »

