De C++ syntax (verschillen tussen C en C++)
- Gegevens: definitie, initialisatie, gegevenstypes.
- Expressies: begrip referentie, castmechanismen.
- Operatoren (: :, new, delete).
- Functies (doorgeven van parameters en retourwaarde per referentie, standaardwaarden, inlining, overloading).
- C-code gebruiken in een C++ programma.
- Referenties (argumenten en retourwaarden).
- Constante types.
- Naamruimten (namespaces).
- "Automatische" typering met het sleutelwoord auto (C++ 11).
Praktisch werk
Aan de slag met de ontwikkelomgeving en een eenvoudig programma programmeren.
Objectgeoriënteerde aanpak
- De algemene principes van de Object-technieken.
- C++ en Object-programmering.
- Een inleiding tot Objectgeoriënteerde methodologieën.
- Een inleiding tot de UML-modellen en -notatie (statisch model, dynamisch model, samenwerkingsmodel, scenario).
Praktisch werk
Toepassing van de concepten op een casestudy die als een rode draad zal fungeren voor de volgende oefeningen.
C++ klassen en -objecten
- Syntactische aspecten: velden, methodes, constructors.
- Toegangscontrole.
- Zelfreferentie.
- Statische velden en methodes.
- De functies.
- Friend-methoden en -klassen.
- Dynamisch aanmaken van object-tabellen.
- Methodologische aspecten: ontwerp van klassen.
- De constructoren kopiëren en verplaatsen (C++11).
- Delegatie van constructoren (C++ 11).
- Inleiding tot geheugenbeheerproblemen (stack, heap, garbage collection...).
Praktisch werk
Programmering van de casestudy. Ontwerp en bouw van een hiërarchie van klassen en interfaces.
Afleiding en overerving
- Het principe afleiding.
- Syntactische aspecten: definitie van afgeleide klassen, constructoren.
- Toegangscontrole.
- Toepassing van polymorfisme: virtuele functies.
- Code hergebruiken: abstracte klassen.
- De interfaces.
- Meervoudige afleiding.
- Semantische en methodologische aspecten: de factorisatie van de code.
Praktisch werk
Toepassing van polymorfisme in de casestudy.
Uitzonderingen
- De syntactische aspecten: try-blokken, genereren van uitzonderingen.
- Methodologische aspecten: constructie van een hiërarchie van uitzonderingen, gebruik van uitzonderingen.
Praktisch werk
Invoering van uitzonderingen in de casestudy.
Overloading van de operatoren
- Het overloading-principe.
- Overloading van de binaire operatoren.
- Speciale overloading: de operator index, functie, conversie.
- Overloading van de operatoren voor geheugenbeheer.
- Overloading van de operatoren '<<' en '>>'.
Praktisch werk
Overloading van enkele eenvoudige operatoren.
De modellen
- Klassemodel. Algemene principes en mechanismen. Overloading van de modellen en herdefinitie van methodes.
- Functiemodel. Algemene principes en mechanismen. Overloading van de modellen.
- Modellen en overloading van de operatoren.
- Modellen en afleidingsmechanismen.
- De verbeteringen die C++ 11 biedt.
Praktisch werk
Oefeningen op de modellen.
De I/O's en overzicht van de STL
- I/O's.
- Het principe van streams en hiërarchie van input/output-klassen.
- Beschrijving van enkele input/output-klassen.
- Overzicht van de STL.
- Doelstellingen en principes.
- Beschrijvingen van enkele modellen en klassen.
- Containers, iterators, interval-gebaseerde lus (C++ 11).
Conclusie
- Levenscyclus van de software: test, integratie, methode van invoering.
- Interactie met andere omgevingen.
- Kritische analyse van C++.
- Evolutie van C++.