
C++ Programozás Tanfolyam
Sajátítsa el a C++-t az alapoktól, és írjon olyan nagy teljesítményű kódot, amely operációs rendszereket, játékmotorokat és beágyazott eszközöket hajt meg. Ez a kurzus mindent lefed az alapvető szintaxistól és memóriakezeléstől a sablonokon, konkurencián és a modern C++20 funkciókon át. A kurzus végére birtokában lesz azoknak a készségeknek és eszközöknek, amelyeket a professzionális C++ fejlesztők minden nap használnak.
Mit fogsz megtanulni:
Először beállít egy professzionális fejlesztőkörnyezetet, és megérti, hogyan fordulnak és kapcsolódnak össze a C++ programok. Innen áttér az adattípusokra, vezérlési folyamatra, mutatókra és dinamikus memóriára, mielőtt az objektumorientált tervezésre és az általános programozásra kerülne sor sablonok segítségével. A kurzus részletesen tárgyalja a C++ Standard Library-t, beleértve a tárolókat, algoritmusokat és modern segédeszközöket. Megtanulja továbbá a konkurenciát szálakkal és atomi műveletekkel, a hibakezelési stratégiákat és a teljesítményprofilozási technikákat. A kurzus végére tudni fogja, hogyan strukturáljon többfájlos projekteket CMake segítségével, hogyan írjon egységteszteket Google Test-tel, és hogyan alkalmazza a termelési kódbázisokban használt tervezési mintákat.
Hogyan tanulhatsz gyakorlatiasan C++ Programozás Tanfolyam
Hogyan gyakorolsz C++ Programozás Tanfolyam
Önnek, ha vállalatként szeretné képezni a csapatát
A Dedika vállalatoknak szóló képzésein a tanfolyam saját üzleti példákkal és gyakorlatokkal, az Ön cégének igényeihez igazítva érhető el.
A kurzus tartalma
8 Fejezet • 40 Óra4 és 360 óra közötti időtartam (te döntesz)
1. fejezetElrejtésRészletek elrejtéseRészletek megtekintéseC++ alapok és fejlesztői környezet beállítása
C++ alapok és fejlesztői környezet beállítása
1. óra • Bemenet, kimenet és alapszintű hibakeresés
Bemutatja a std::cin és std::cout használatát konzolos I/O-hoz, valamint az alapszintű hibakeresést kiíratásokkal és fordítódiagnosztikával. Iteratív fejlesztési szokásokat alakít ki.
2. óra • Fordítási és kapcsolási folyamat
Elmagyarázza az előfeldolgozás, fordítás, assembly és kapcsolás különálló szakaszait. A tanulók nyomon követik, hogyan válnak a forrásfájlok futtatható binárisokká.
3. óra • A fejlesztői környezet beállítása
Telepíti és konfigurálja a fordítókat, szerkesztőket és build eszközöket a főbb platformokon. Biztosítja, hogy minden tanulónak reprodukálható munkaterülete legyen a kódírás megkezdése előtt.
4. óra • Egy C++ program szerkezete
Egy minimális C++ forrásfájl felépítésének elemzése, beleértve a fejléceket, a main függvényt és a névtereket. Összekapcsolja a szintaxis szabályait a fordítási modellel.
5. óra • A C++ története és tervezési filozófiája
Nyomon követi a C++ eredetét a C-ből és a Simulából, kiemelve a nulla overheadű absztrakciót és a rendszerszintű vezérlést. Kontextust biztosít a kurzus során felmerülő tervezési döntésekhez.
2. fejezetElrejtésRészletek elrejtéseRészletek megtekintéseAlapvető adattípusok, változók és operátorok
Alapvető adattípusok, változók és operátorok
1. óra • Aritmetikai és bitenkénti operátorok
Feltárja az aritmetikai, modulo, növekményes és bitenkénti operátorokat a precedenciaszabályokkal. A tanulók operátorokat alkalmaznak numerikus és bitmanipulációs problémák megoldására.
2. óra • Változódeklaráció és inicializálás
Megkülönbözteti az alapértelmezett, érték-, másoló- és közvetlen inicializálási formákat. Hangsúlyozza az egységes kapcsos zárójeles inicializálást a szűkítő konverziók megelőzése érdekében.
3. óra • Kifejezések, utasítások és nem definiált viselkedés
Meghatározza a szekvenciapontokat, értékkategóriákat és a nem definiált viselkedés gyakori forrásait. A kezdetektől fegyelmezett kódolási szokásokat alakít ki.
4. óra • Típuskonverziók és típuskényszerítés
Elmagyarázza az implicit promóciót, a szűkítést és az explicit C++ típuskényszerítéseket. A tanulók megtanulják, hogyan konvertálhatnak típusokat biztonságosan, nem definiált viselkedés nélkül.
5. óra • Alapvető típusok és méretek
Lefedi az egész, lebegőpontos, karakter és logikai típusokat, azok méreteivel és tartományaival. Összekapcsolja a típusválasztást a memóriahatékonysággal és a helyességgel.
3. fejezetElrejtésRészletek elrejtéseRészletek megtekintéseVezérlési szerkezetek és függvények
Vezérlési szerkezetek és függvények
1. óra • Rekurzió és veremkezelési szempontok
Rekurziót alkalmaz klasszikus problémákra, és elemzi a veremmélységet és a tail-call mintákat. A tanulók egyensúlyoznak az elegancia és a gyakorlati veremkorlátok között.
2. óra • Feltételes utasítások
Lefedi az if-else láncokat, a switch-case-t és a ternáris operátort az átadási szabályokkal. A tanulók kiválasztják a megfelelő szerkezetet minden döntési helyzethez.
3. óra • Ciklusok és iteráció
Bemutatja a for, while, do-while és a tartomány alapú for ciklusokat break és continue utasításokkal. A tanulók az iterációs minta és a leállási feltétel alapján választanak ciklust.
4. óra • Függvény túlterhelés és névmanipuláció
Elmagyarázza, hogyan oldja fel a fordító a túlterhelt függvényhívásokat, és hogyan generál manipulált neveket. A tanulók egyértelmű és karbantartható túlterheléseket írnak.
5. óra • Függvény deklaráció és definíció
Ismerteti a függvényaláírásokat, visszatérési típusokat, előre deklarációkat és a hívási vermet. Összekapcsolja a függvénytervezést a kód újrafelhasználásával és karbantarthatóságával.
4. fejezetElrejtésRészletek elrejtéseRészletek megtekintéseMutatók, referenciák és memóriakezelés
Mutatók, referenciák és memóriakezelés
1. óra • Okos mutatók és tulajdonlás
Bemutatja a unique_ptr, shared_ptr és weak_ptr RAII burkolókat, amelyek automatizálják a memóriakezelést. A tanulók a nyers tulajdonló mutatókat biztonságos alternatívákra cserélik.
2. óra • Referenciák és szemantikájuk
Megkülönbözteti az lérték referenciákat a mutatóktól, és bevezeti az rérték referenciákat a move szemantikához. A tanulók referenciákat használnak hatékony, aliasing-biztos kód írásához.
3. óra • Gyakori memóriahibák és sanitizerek
Azonosítja a lógó mutatókat, puffertúlcsordulásokat, használat utáni felszabadítást és dupla törlési hibákat. A tanulók az AddressSanitizer és a Valgrind segítségével észlelik és javítják a hibákat.
4. óra • Mutatók és cím aritmetika
Bemutatja a mutató deklarációját, dereferálását, null mutatóit és a mutató aritmetikát. Összekapcsolja az alacsony szintű címzést a tömbbejárással és a teljesítménnyel.
5. óra • Dinamikus memóriafoglalás
Lefedi a new, delete, new[] és delete[] operátorokat a heap elrendezésével és töredezettségi fogalmaival. A tanulók memóriát foglalnak és szabadítanak fel szivárgás vagy dupla felszabadítás nélkül.
5. fejezetElrejtésRészletek elrejtéseRészletek megtekintéseObjektumorientált programozás C++-ban
Objektumorientált programozás C++-ban
1. óra • Polimorfizmus és virtuális függvények
Elmagyarázza a virtuális kiosztást, a vtable-eket, a tiszta virtuális függvényeket és az absztrakt osztályokat. A tanulók bővíthető kódot írnak, amely követi a nyitott-zárt elvet.
2. óra • Osztályok, struktúrák és beágyazás
Meghatározza az osztály és struktúra szintaxisát, hozzáférés-specifikátorait és tagfüggvényeit. A tanulók adatokat ágyaznak be az invariánsok kikényszerítése és a megvalósítási részletek elrejtése érdekében.
3. óra • Konstruktorok, destruktorok és az Ötök Szabálya
Lefedi az alapértelmezett, paraméteres, másoló és mozgató konstruktorokat a destruktorok mellett. A tanulók az Ötök Szabályát alkalmazzák az erőforrások helyes kezelésére.
4. óra • Operátor túlterhelés
Túlterheli az aritmetikai, összehasonlító, adatfolyam és indexelő operátorokat felhasználó által definiált típusokhoz. A tanulók olyan konvenciókat követnek, amelyek intuitívvá teszik a túlterhelt operátorokat.
5. óra • Öröklődés és osztályhierarchiák
Egyszeres és többszörös öröklődést valósít meg ősosztály hozzáférés-vezérléssel. A tanulók olyan hierarchiákat terveznek, amelyek elősegítik a kód újrafelhasználását szoros csatolás nélkül.
6. fejezetElrejtésRészletek elrejtéseRészletek megtekintéseSablonok és generikus programozás
Sablonok és generikus programozás
1. óra • Osztálysablonok
Meghatározza az osztálysablonokat tagfüggvényekkel, részleges specializációval és alapértelmezett paraméterekkel. A tanulók általános tárolókat építenek a szabványos könyvtár mintái alapján.
2. óra • Sablon metaprogramozás alapjai
Típusjellemzőket, if constexpr-t és fordítási időben történő számítást használ a viselkedés specializálásához. A tanulók optimalizálják a kódútvonalakat futásidejű overhead nélkül.
3. óra • Variadic sablonok és paramétercsomagok
Paramétercsomagok kiterjesztése fold kifejezésekkel tetszőleges számú argumentum kezeléséhez. A tanulók továbbító burkolókat és típusbiztos variadic segédeszközöket valósítanak meg.
4. óra • Függvénysablonok
Bemutatja a függvénysablon szintaxisát, típuslevezetését és explicit példányosítását. A tanulók a duplikált típusspecifikus függvényeket egyetlen generikus verzióra cserélik.
5. óra • Fogalmak és megszorítások (C++20)
requires záradékokat és szabványos fogalmakat alkalmaz a sablon paraméterek megszorítására. A tanulók egyértelműbb hibaüzeneteket és öndokumentáló generikus interfészeket hoznak létre.
7. fejezetElrejtésRészletek elrejtéseRészletek megtekintéseA C++ szabványos könyvtár
A C++ szabványos könyvtár
1. óra • Segédprogramok: Optional, Variant és Span
std::optional, std::variant, std::any és std::span használata nullable, összeg- és nézettípusok kifejezésére. A tanulók kiküszöbölik a null mutató hibákat és a nem biztonságos uniókat.
2. óra • Szabványos algoritmusok
Rendezési, keresési, transzformációs és particionáló algoritmusokat alkalmaz a <algorithm>-ből. A tanulók a kézzel írt ciklusokat kifejező, tesztelt könyvtári hívásokra cserélik.
3. óra • Karakterláncok, karakterlánc-nézetek és formázás
Lefedi a std::string műveleteket, a std::string_view-t nem tulajdonló hozzáféréshez és a std::format-ot típusbiztos kimenethez. A tanulók hatékonyan kezelik a szöveget szükségtelen másolatok nélkül.
4. óra • Iterátorok és tartományok
Elmagyarázza az iterátor kategóriákat, a tartomány alapú algoritmusokat és a C++20 tartományokat és nézeteket. A tanulók lusta folyamatokat állítanak össze, amelyek köztes másolatok nélkül dolgozzák fel az adatokat.
5. óra • Szekvenciális és asszociatív tárolók
Összehasonlítja a vector, deque, list, map, unordered_map, set és teljesítményprofiljaikat. A tanulók a hozzáférési minta és a bonyolultsági követelmények alapján választanak tárolót.
8. fejezetElrejtésRészletek elrejtéseRészletek megtekintéseHaladó C++ technikák és bevált gyakorlatok
Haladó C++ technikák és bevált gyakorlatok
1. óra • Move szemantika és értékkategóriák
Mélyíti az rérték referenciák, a std::move és a move-only típusok megértését. A tanulók kiküszöbölik a szükségtelen másolatokat a teljesítménykritikus kódútvonalakon.
2. óra • Lambdák és funkcionális minták
Meghatározza a lambda szintaxist, a befogási módokat, a generikus lambdákat és a std::function-t. A tanulók magasabb rendű függvényeket és visszahívásokat állítanak össze minimális kódduplikációval.
3. óra • Hibakezelési stratégiák
Összehasonlítja a kivételeket, hibakódokat, std::expected-et és ellenőrzéseket a hibák közlésére. A tanulók olyan stratégiákat választanak, amelyek egyensúlyt teremtenek a biztonság, a teljesítmény és az egyértelműség között.
4. óra • Profilozás, optimalizálás és nem definiált viselkedés
Profiloz perf és gprof segítségével, fordítói optimalizálásokat alkalmaz, és sanitizerekkel szünteti meg a nem definiált viselkedést. A tanulók mért adatok alapján hangolják a kódot.
5. óra • Párhuzamosság szálakkal és atomi műveletekkel
Szálak indítása, szinkronizálás mutexekkel és feltételes változókkal, valamint atomi műveletek használata zárolásmentes mintákhoz. A tanulók adatverseny-mentes párhuzamos programokat írnak.
Érvényes befejezési tanúsítványod
Ez a kurzus neked szól:
Számítástechnika szakos hallgatók: akik túl akarnak lépni a szkriptnyelveken a rendszerszintű programozás felé.
Játékfejlesztők: akik közvetlen hardvervezérlést szeretnének a teljesítménykritikus motorkódhoz.
Beágyazott rendszerek mérnökei: akik hatékony firmware-t akarnak írni erőforrás-korlátos eszközökre.
Python vagy Java fejlesztők: akik készek megérteni, mi történik a felügyelt futási környezetek mögött.
Önképző programozók: akik hiányosságokat szeretnének pótolni és szilárd C++ alapokat építeni.
Karrierváltók: akik robotikai, autóipari vagy nagyfrekvenciás kereskedési szoftverekkel kapcsolatos szerepköröket céloznak meg.
Mit mondanak a diákjaink
Az órái tökéletesek. Megvettem az egyéves csomagot, és végre lehetőségem van különböző érdekes témákat követni anélkül, hogy platformot kellene váltanom... köszönöm mindazt, amit csinálnak, már ajánlottam is másoknak...

Szeretem, hogy a leckék egyenesen a lényegre térnek, és hogy tudok fejezeteket váltani és átugrani olyan tartalmakat, amikre nincs szükségem.

Szeretem a tartalmat és a videók bemutatási és átírási módját, ami felgyorsítja a folyamatot!

A platform gyors, egyszerű használni. A tartalom sokfélesége és a kiegészítő videók nagyon sokat segítenek a tanulásban.

Főbb képzések
GYIK
Mi a Dedika?
Érvényes a tanúsítvány Magyarországon?
Ingyenesek a tanfolyamok?
Mennyi a tanfolyamok óraszáma?
Milyenek a tanfolyamok?
Hogyan működnek a tanfolyamok?
Mennyi ideig tartanak a tanfolyamok?
Mennyibe kerülnek a tanfolyamok?
Mi az az EAD vagy online tanfolyam, és hogyan működik?
PDF tanfolyam




















