Válassza ki a nyelvét
C++ Programozás Tanfolyam
Több mint 2 millió diák világszerte

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.

Dedika vállalatoknak

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.

Kattintson ide

A kurzus tartalma

8 Fejezet • 40 Óra4 és 360 óra közötti időtartam (te döntesz)

1. fejezetRészletek megtekintése

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. fejezetRészletek megtekintése

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. fejezetRészletek megtekintése

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. fejezetRészletek megtekintése

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. fejezetRészletek megtekintése

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. fejezetRészletek megtekintése

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. fejezetRészletek megtekintése

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. fejezetRészletek megtekintése

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.

Tanúsítvány

É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...
Giulio Carlo
Giulio CarloDigitális Marketing Hallgató
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.
Mariana Ferres
Mariana FerresFotográfia Hallgató
Szeretem a tartalmat és a videók bemutatási és átírási módját, ami felgyorsítja a folyamatot!
Luciana Alvarenga
Luciana AlvarengaKörömdesign Hallgató
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.
André Felipe
André FelipePrompt Engineering Hallgató

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