Dette kursus er et af vores mest avancerede, og samtidig et af vores mest givende kurser, hvis du virkelig vil til bunds i C++ sproget i dets moderne udgave.
På kurset lægger vi bl.a. vægt på de nyere versioner af C++, hvor der er kommet mange nyskabende elementer ind i sproget. På den objektorienterede front er begreber som Design Patterns i højsædet – hvordan undgår vi at lave løsninger på problemer, som allerede er blevet elegant løst af branchens bedste udviklere?
Der lægges desuden vægt på begreber som korrekthed og sikkerhed i det underliggende kodeniveau – hvordan sikrer man, at memory ikke bliver misbrugt? Herigennem berører vi, hvordan data konverteres fra én type til en anden, og vi ser nærmere på, hvad man overhovedet kan konvertere.
Vi kommer også ind på, hvordan operator overload kan anvendes til at håndtere pointers og parameterlister således, at programmet beviseligt ikke KAN fejle. Hertil anvendes smart pointers, som vi selv kan definere og udnytte. Alternativt kan klassebibliotekets indbyggede og gennemtestede smart pointers anvendes.
Til gennemløb af store datamængder tilbyder C++ mange muligheder – iterators og generic algorithms hjælper med at fokusere på logikken fremfor implementeringen ...
%%%
... til brug i teamwork, og med ranges og pipelines kan man få et simplere og mere effektivt gennemløb.
Kurset ser også på tiltag indenfor sprog-paradigmer – objektorienteret vs. funktionel programmering. C++ giver mulighed for lambdas og anonymous functions, der sammen med begreber som closures giver mulighed for også at håndtere udviklingssituationer, hvor problemerne er mere funktions-lignende end objekt-orienterede.
Endeligt ser vi nærmere på faciliteter i C++'s klassebibliotek, bl.a. multithreading og regular expressions.
Kurset veksler mellem teori og praksis, hvorfor der vil være rige muligheder for at eksperimentere med de mange nye sprogkonstruktioner i hands-on øvelser.