Lær C++ i praksis-appikon

Lær C++ i praksis

Uddannelse · Gratis · iOS & Android · CoddyKit

Lær C++ i praksis — Skriv, kompilér og kør C++-kode fra din telefon

Lær C++ i praksis er en gratis iOS- og Android-app til begyndere, datalogistuderende og udviklere, der vil lære C++ ved at skrive kode. Den indbyggede editor sender din kode til en rigtig GCC-compiler og viser outputtet og exit-koden, mens en AI Mentor omsætter compilerfejl til almindeligt dansk. 51 kurser og 200+ korte lektioner tager dig fra din første cout til klasser, STL, move semantics og C++20.

App Store — Download gratisGoogle Play — Download gratis
Pris
Gratis, Pro-opgradering
Platforme
iOS og Android
Sprog
22
Aldersklassifikation
4+
Kræver
iOS 15.1 eller nyere
App Store
4.9 ★ (7)
Startskærmen i C++-appen på arabisk med en knap til at starte den første lektion, et dagligt mål, nedtællingen til World Coding Challenge og genvejene Ask Mentor og Generate your lessonFanen Udfordring i den arabiske grænseflade med World Coding Challenge, en C++-udfordring fra det aktive kursus og mulighed for at deltage med en kode
51Kurser og 200+ lektioner
GCCRigtig compiler i editoren
3/dagTre daglige øvelsesvaner
Pointere er kun skræmmende indtil lektion tolv.

C++ har ry for at være umuligt at lære, men meget af det skyldes, at man får vist det hele på én gang: ejerskab, heap, templates og STL på dag ét. Fordelt over 51 korte kurser kommer det samme stof lag for lag, og hver idé afsluttes med kode, som du selv kompilerer og kører.

Hvad det er

Lær C++ i praksis er en gratis iOS- og Android-app, der lærer dig C++ fra din første cout til klasser, STL, move semantics og moderne C++20. Den indeholder 51 kurser og 200+ korte lektioner fordelt på fem spor (grundlæggende, hukommelse, objekter, STL og opbygning af rigtige programmer), en editor, der kompilerer med en rigtig GCC-compiler, 20 guidede projekter, 60 kodningsmissioner og en AI Mentor med fejloversættelse.

Inde i appen

Sådan ser det ud

Startskærmen i C++-appen på arabisk med en knap til at starte den første lektion, et dagligt mål, nedtællingen til World Coding Challenge og genvejene Ask Mentor og Generate your lesson
HjemStartskærmen viser kursuskortet med en startknap, det daglige mål og en nedtælling til den næste runde af World Coding Challenge samt genveje til AI Mentor og lektionsgenerering. Skærmbilledet bruger den arabiske grænseflade.
Fanen Udfordring i den arabiske grænseflade med World Coding Challenge, en C++-udfordring fra det aktive kursus og mulighed for at deltage med en kode
Fanen UdfordringFanen Udfordring åbner World Coding Challenge, lader dig starte en match fra dit aktive C++-kursus, gennemse andre udfordringer eller deltage med en kode.
Profildisplay i den arabiske grænseflade med en tæller for den daglige streak, et 90-dages aktivitetsheatmap og et gitter med præstationsmærker
Streak og mærkerProfilen holder styr på din daglige streak, et 90-dages aktivitetsheatmap og præstationsmærker, som hjælper dig med at holde de korte sessioner regelmæssige.
AI chat screen asking How can I help you, with suggested prompts to explain the key concepts, give tips, quiz you and create a learning roadmap
AI chatThe AI chat answers questions and starts from suggestions: explain the key concepts, share tips, quiz you or build a learning roadmap.
Learn C++ home screen with the C++ Academy course card, Start First Lesson, a daily goal ring, a Feature Request row and the Skill Hub
HomeThe home screen up close: the C++ Academy course card with Start First Lesson, a daily goal ring, a Feature Request row and the Skill Hub.

Kurset

Dette dækker C++-kurset

51 kurser fra appens eget pensum, lige fra dit første kompilerede program til lock-free-concurrency og coroutines.

  1. Syntaks, strenge og kontrolflow

    Opsætning af en compiler og kørsel af dit første program, efterfulgt af variabler og type inference, std::string sammenlignet med C-style char-arrays, input- og outputstreams samt de kontrolflow-mønstre, som alle senere kurser forudsætter.

  2. Structs, vektorer og miniprojekter

    En introduktion til structs og klasser, arbejde med tal og matematik, vektorer og dynamiske arrays, pass-by-reference samt små praktiske projekter, der samler delene.

  3. Hukommelse, RAII og sikrere alternativer til raw pointers

    Hukommelsesmodellen for stack versus heap, RAII og ressourcehåndtering, exception handling og noexcept, const correctness, sikker brug af pointers samt smart pointers som det moderne alternativ til manuel new og delete.

  4. Moderne typer, containere og objektorienteret design

    Enums, unions og std::variant, std::optional og std::expected, std::string_view og std::span, associative containere og hashing med unordered_map, inheritance og polymorphism samt operator overloading for brugerdefinerede typer.

  5. Build-værktøjer, fil-I/O og standardbiblioteket

    Build med CMake og pakkehåndtering, fil-I/O med fstream, chrono-biblioteket til tid samt pattern matching med regex-headeren – de dele af C++, der forbinder kode med filsystemet og uret.

  6. STL og moderne C++11 til C++20

    En gennemgang af ændringerne fra C++11 til C++20, move semantics og rvalue references, lambdas og std::function, STL-algoritmer, iterators og ranges samt debugging med sanitizers.

  7. Templates, performance og systems programming

    Concurrency-primitiver, template specialization og SFINAE, avancerede templates og metaprogrammering, C++20 concepts, performance profiling samt design af en librarys offentlige API.

  8. Avanceret concurrency og coroutines

    Lock-free-programmering og atomics til situationer, hvor en mutex er for langsom, samt C++20-coroutines, den seneste tilføjelse til sproget, som gennemgås til sidst, fordi alt det foregående er en forudsætning.

Sådan fungerer det

Sådan fungerer en C++-session

Hver session kombinerer en kort lektion med kode, du kører, samt et par daglige øvelser, der holder syntaksen frisk.

  1. Læs én kort lektion

    Åbn et kursus, og tag en enkelt lektion om én idé, f.eks. en struct, en reference eller en smart pointer. Det første kursus er gratis, så du kan se, hvordan lektionerne føles, før du beslutter dig.

  2. Skriv, kompilér og kør det

    Skriv koden i mobil-editoren, og kør den. En rigtig GCC-compiler bygger den og returnerer outputtet og exit-koden, og programmer, der læser fra cin, får et sted, hvor du kan skrive input. Fordi compileren er fjern, kræver det en forbindelse at køre kode.

  3. Hold det skarpt med daglige øvelser og AI Mentor

    Forudsig outputtet fra fem korte programmer, find fejlen i ét ødelagt program i dagens fejl-jagt, eller spil en 60-sekunders Syntax Sprint. Når en fejl er ulæselig, kan du indsætte den i AI Mentor og få den forklaret i én sætning samt få vist den linje, der skal rettes.

Hvad det indeholder

Det får du med appen

51

Kurser og 200+ lektioner

Et kursuskort samler kurserne i fem spor: grundlæggende, hukommelse, objekter, STL og opbygning af rigtige programmer. Emnerne går fra variabler og streams over pointere, RAII og templates til CMake, concurrency og coroutines.

GCC

Rigtig compiler i editoren

Koden bygges af en rigtig GCC-compiler, ikke en simulator. Du ser outputtet og exit-koden, kan give input til programmer, der læser fra cin, og kan køre igen med ét tryk. Hvert program, du kører, gemmes.

3/dag

Tre daglige øvelsesvaner

Forudsig outputtet (fem korte programmer om dagen — svar, før compileren har afgjort det), en daglig fejl-jagt med gratis hints og en 60-sekunders Syntax Sprint med spørgsmål, der besvares med ét tryk.

20

Guidede projekter

Byg rigtige programmer trin for trin, f.eks. et lager, en bankkonto, figurer med polymorfi, en template-stack, en RPN-beregner, en linked list og en state machine.

AI

AI Mentor og fejloversætter

Sidder du fast med en pointer eller en mur af template-fejl? Indsæt fejlen, og få den forklaret i én sætning, eller spørg AI Mentor om hvad som helst på almindeligt sprog.

60

Missioner og en verdensudfordring

60 kodningsmissioner fra lette til svære, et nyt kodningsproblem hver dag og World Coding Challenge, tre live globale runder om dagen med en rangliste samt streaks, XP og påmindelser.

Baggrund

Hvorfor kører C++ stadig den software, der ikke har råd til at være langsom?

C++ kompilerer direkte til maskinkode og giver programmøren direkte kontrol over hukommelsen, så der ikke står noget mellem koden og hardwaren. Derfor skrives spil-motorer som Unreal, systemer til højfrekvenshandel, firmware til robotteknologi og mange komponenter i operativsystemer stadig i C++ flere årtier efter, at højniveausprog kom frem. Den samme kontrol er også det, der gør sproget svært i begyndelsen: Et C++-program skal udtrykkeligt angive, hvor en værdi ligger, og hvem der har ansvaret for at frigive den — noget Python eller JavaScript klarer usynligt.

Stack kontra heaphukommelsesmodellen

Stack-hukommelse frigives automatisk, så snart en funktion returnerer; heap-hukommelse overlever, indtil noget frigiver den udtrykkeligt. Mange fejl, som begyndere støder på, såsom en dangling pointer, en memory leak eller et nedbrud ved at røre ved frigivet hukommelse, kan spores tilbage til, at man forveksler de to.

RAIIC++'s eget sikkerhedsnet

Resource Acquisition Is Initialization knytter en ressources levetid til en objekts constructor og destructor, så den frigives automatisk, når objektet går ud af scope. Smart pointers er RAII anvendt på hukommelse, og idiomet er det, der gør moderne C++ langt mere sikkert end den raw-pointer-kode, det erstattede.

STLværktøjskassen under sproget

The Standard Template Library samler containere som vector, map og unordered_map samt iteratorer og algoritmer, der allerede implementerer sortering, søgning og transformering. Når du griber ud efter STL i stedet for selv at skrive en linked list, er det dér, C++ holder op med at føles som manuelt arbejde.

Templateskode, der fungerer for alle typer

En template lader én funktion eller klasse fungere på tværs af alle typer, som compileren kan bestemme ved compile-tid, uden runtime-omkostninger. Det er mekanismen bag selve STL og grunden til, at C++-biblioteker både kan være generiske og hurtige.

Egnethed

Hvem det er til — og hvem det ikke er til

Det passer godt til dig, hvis du

  • Vil du lære de svære dele af C++, pointers, heapen og templates, én ad gangen i stedet for i én tæt manual
  • Er du datalogistuderende og arbejder dig gennem undervisning, der forudsætter STL og grundlæggende datastrukturer
  • Er du på vej mod arbejde med spil, embedded eller systems programming og har brug for virkelig at forstå hukommelsesmodellen
  • Kommer du fra Python eller Java og vil forstå, hvad der sker i hukommelsen
  • Vil du hellere indsætte en rigtig compilerfejl i en AI Mentor end søge på fora efter en standardskabelon

Det er ikke det rette værktøj, hvis du

  • Har du brug for at køre kode uden forbindelse: Programmer kompileres på en ekstern GCC-compiler
  • Har du brug for en komplet desktop-toolchain i dag, f.eks. CMake-projekter med flere filer, store eksterne biblioteker og en debugger, som hører hjemme på en computer
  • Vil du have alle 51 kurser gratis: Det første kursus og et udvalg af daglige øvelser er gratis, og Pro låser resten op
  • Arbejder du allerede professionelt med C++ og vil have en reference i stedet for et kursus i fast rækkefølge

Spørgsmål

Ofte stillede spørgsmål

Hvad er Lær C++ i praksis?

Lær C++ i praksis er en gratis iOS- og Android-app til at lære C++-programmering gennem korte lektioner og en indbygget code editor, der kompilerer på en rigtig GCC-compiler. Den er udviklet til begyndere, datalogistuderende, spil- og systemsudviklere samt alle, der forbereder sig til et programmeringskursus. Grænsefladen findes på 22 sprog.

Er Lær C++ i praksis gratis?

Den kan downloades gratis fra App Store og Google Play, og du kan komme gratis i gang. Det første kursus, det daglige Predict the output-sæt, den daglige bug hunt, tre Syntax Sprint-runder om dagen, det første guidede projekt, to missioner, dagens programmeringsopgave, World Coding Challenge og ét AI Mentor-spørgsmål om dagen er gratis. Pro låser alle kurser, missioner og projekter op samt ubegrænset Syntax Sprint, alle AI-værktøjer, certifikateksamen og en reklamefri oplevelse.

Kan jeg kompilere og køre C++ på min telefon, og virker det offline?

Ja, du kan skrive C++ i appens editor og køre det fra din telefon. En rigtig GCC-compiler bygger koden og returnerer output og exit code, og programmer, der læser fra cin, kan modtage indtastet input. Da compileren er ekstern, kræver kørsel af kode en internetforbindelse. Store CMake-projekter med flere filer egner sig bedre til at blive bygget på en computer.

Hvem er den til, og hvad dækker den?

Den passer til begyndere, der lærer C++ som deres første eller andet sprog, studerende på et C++-kursus, spil- og systemsudviklere samt udviklere fra Python eller Java, der vil forstå hukommelse. De 51 kurser dækker variabler, strenge, streams, kontrolflow, structs og klasser, vektorer, references, pointers, RAII, smart pointers, templates, lambdas, STL, fil-I/O, CMake, concurrency og coroutines.

Hvad er Predict the output, Bug hunt og Syntax Sprint?

Det er tre daglige C++-vaner til træning. Predict the output giver dig fem korte programmer om dagen og beder dig svare, før compileren afgør resultatet. Bug hunt giver dig ét ødelagt program om dagen, som du skal rette og bevise med compileren, med gratis hints. Syntax Sprint består af syntaks-spørgsmål med ét tryk i 60 sekunder, hvor du prøver at slå din bedste score.

Hvorfor føles pointers og opdelingen mellem stack og heap så svær i C++?

De fleste sprog afgør for dig, hvor en værdi ligger, og hvornår den frigives; i C++ skal du selv beslutte det, og det er hele årsagen til sværhedsgraden. En pointer er blot en variabel, der indeholder adressen på en anden værdi, men hvis du forveksler stack og heap, kan det føre til dangling pointers, leaks og crashes. Appen lærer dig hukommelsesmodellen, RAII og smart pointers i deres egne kurser.

Hvad er RAII, og hvorfor foretrækker moderne C++ det frem for manuel new og delete?

RAII, Resource Acquisition Is Initialization, knytter en ressources levetid til konstruktøren og destruktøren for et objekt, så den frigives automatisk, når objektet forlader sit scope, og der ikke er noget delete-kald, du kan glemme. Smart pointers er RAII anvendt på hukommelse, og overgangen fra raw new og delete til smart pointers er en af de største sikkerhedsforbedringer i moderne C++.

Bør jeg lære STL, før jeg skriver mine egne datastrukturer?

Som regel ja. Standard Template Library indeholder allerede testede vektorer, maps, sets, iterators og algoritmer, så du lærer at gribe ud efter std::sort, før du genimplementerer det. Appen lader dig stadig bygge en linked list, en template stack og andre strukturer i de guidede projekter, når grundlaget er på plads.

Hjælper den med forberedelse til C++-jobsamtaler?

Den hjælper med træningsdelen. Predict the output og bug hunt træner omhyggelig kodelæsning, STL-kurserne dækker de containere og algoritmer, som jobsamtaler ofte fokuserer på, og guidede projekter som en linked list, en template stack og en RPN-calculator træner almindelige strukturer. Det er et kursus og ikke en dedikeret samling af interviewspørgsmål.

Er Learn C++: Code & Practice på App Store den samme app?

Ja. App Store-listingen hedder Learn C++: Code & Practice, og Google Play-listingen hedder Lær C++ i praksis, men det er den samme app med de samme 51 kurser. Der udstedes et gennemførelsesbevis efter den afsluttende eksamen; det dokumenterer dit arbejde og er ikke en akkrediteret kvalifikation.

Kom i gang

Kompilér dit første C++-program i dag

51 kurser, en rigtig GCC-compiler og en AI Mentor. Gratis at komme i gang på iOS og Android på 22 sprog.

App Store — Download gratisGoogle Play — Download gratis
Senest gennemgået · Udgivet af CoddyKit · Privatlivspolitik
Tilgængelig på iOS og Android.