Foto* GammaCamera::maakFoto(string)Opdracht:
Maak een nieuwe GammaFoto met het gegeven onderwerp en een nieuwe positie die gelijk is aan de huidige positie van de camera.
Foto* GammaCamera::maakFoto(string onderwerp) {
Positie* nieuwePos = new Positie(*positie); // kopieer de huidige positie
return new GammaFoto(onderwerp, nieuwePos); // maak nieuwe foto met deze positie
}
Uitleg:
Foto, maar in dit geval maken we een GammaFoto.positie is een pointer naar een Positie object van de camera.Positie met new Positie(*positie) zodat de foto zijn eigen kopie heeft.bool Scanner::voegCameraToe(string plaats, Camera* camera)Opdracht:
Voeg een camera toe aan de map cameras met de gegeven plaats als sleutel. Return true als de camera succesvol is toegevoegd, anders false.
bool Scanner::voegCameraToe(string plaats, Camera* camera) {
auto resultaat = cameras.insert(make_pair(plaats, camera));
return resultaat.second;
}
Uitleg:
map::insert() geeft een paar terug: een iterator en een boolean (second) die aangeeft of het invoegen gelukt is.false geretourneerd.void Scanner::maakOpname(string n)