Stikkord m.m i "Objekt-orientert programmering" (i C++)
- Fra C til C++ - det som er annerledes/nytt
- Funksjoner:
- Default/standard parametre/argumenter
- Overloading av funksjoner
- Referanseoverføring
- Pekere og memoryallokering:
- new / delete
- Pekere til objekter/containere
- Pekere inni objekter/containere
- this - peker/referanse til objektet selv
- (ikke vektlagt/brukt: shared_ptr, unique_ptr, make_shared/unique)
- Klasser og objekter:
- Klassespesifikasjon
- Constructor/Destructor
- sett- og hent-funksjoner
- Innebygd/selvlaget Copy Constructor
- Objekter som:
- fysiske objekter/data typer
- parametre
- retur fra funksjon
- Struct vs. class
- Arv:
- Syntaks for arv
- private, protected, public
- Constructorer i arvetre
- Overskrivende funksjoner
- Klassehierarkier
- Abstrakte baseklasser
- Private vs. public arv
- Arv (kind of ...) vs. aggregation/containership (has a ... inside)
- Pekere til ulike objekter
- Casting mellom ulike klasser-typer
- Virtueller:
- Bruken av ordet "virtual"
(kan (men bør ikke) utelates i subklassene,
må utelates der funksjonsdefinisjonen står for seg selv)
- Må ha virtuell destructor i arvetrær
- Pure virtual
(bruker "= 0" i baseklassen, subklasser må da implementere funksjonen)
- Filer:
- ASCII-filer (vs. binære: read / write)
- Lese (enkelt-variable, strenger): >> , get/getline, ignore
- Skrive (enkelt-variable, strenger): <<
- Lese fra og skrive til samme fil
- Direkteposisjonering vha. filpekere (seekg/p, tellg/p)
- Append (legge til bakerst)
- Tekster/string, containere og STL:
- <string>
- <vector>
- <stack>
- <queue>
- <list>
- <map>
- <algorithm>
(vi har i emnet brukt: copy, count(_if), find(_if), for_each, is_sorted,
lower_bound/upper_bound, max_element, min_element,
remove(_if), replace(_if), reverse, sort, unique)
- Iteratorer
- Lambda-funksjoner
- Annet:
- Range-based for-løkke
- 'auto val' vs. 'auto & val' vs. 'const auto & val'.
- const - 4 måter: globale verdier, parametre, medlemsfunksjon, objekt
- LesData2 / LesData3
- Multifilsprogrammer (#include, extern)
- Git / GitLab
- Kodeanalyse
- Testing
- Prosjekt