Elektrotechniek/Embedded Systems engineering inf2D
Programmeren in C++ les 4
cursus 2010-2011 ir drs E.J Boks
Les 4 Voortzetting van C++ verschillen met C Statische klassevariabelen Constante klassevariabelen Vererving van klassen Virtuele leden van een klasse Klassen met meerdere ouders Polymorphisme bij klassen Data afscherming in een klasse File en variabelen I/O
2
Statische en constanten variabelen in een klasse Bij een klasse wordt de geheugenruimte van de klasse normalerwijze slechts gebruikt door de instantiëring van de klasse. Er is echter een methode om een variabele te delen over alle instantiëringen van de klasse. Dit gebeurt met de static operator binnen de klasse definitie. Indien de variabele niet veranderlijk is, kan in plaats van een gedeelde static variabele een gedeelde constante variabele worden gebruikt. De static variabele wordt buiten de klassedefintie een waarde gegeven. De constante variabele wordt binnen de definitie gedeclareerd.
Static declaratie in een klasse
Constant declaratie in een klasse
Vererving van klassen
Een klasse kan in C++ bouwen op de infrastructuur van andere klassen. Deze zogenaamde vererving (Engels: inheritance) is een van de krachtigste gereedschappen in C++ om een uitgebruike funktionaliteit op te bouwen rond een thema, zoals een grafische interface van een besturingssysteem. Vererving geschiedt door bij de definitie van een klasse de ouder te noemen.
Vererving voorbeeld - 1
Vererving voorbeeld - 2
Vererving voorbeeld - 3
Virtuele leden van een klasse
In een klasse kunnen door ververving reeds bestaande methoden worden binnengehaald. Soms is het noodzakelijk om bij een nieuwe, afgeleide, klasse de verkregen methode opnieuw op te stellen. Dit kan als de ouder van de afgeleide klasse dit voor de methode toelaat middels het sleutelwoord virtual.
Virtuele methoden in een klasse – 1
Virtuele methoden in een klasse – 2
Meerdere ouders
Bij vererving is het toegestaan om een nieuwe afgeleide klasse te baseren op meerdere ouders. De nieuwe klasse beschikt dan over alle variabelen en methoden van de ouders.
Meerdere ouders -1
Meerdere ouders -2
Polymorphisme
Wanneer een methode van een klasse virtueel wordt herschreven op twee verschillende manieren, dan is de methode opnieuw gedefinieerd. Echter, het doel van de methode (wat bereikt moet worden door de methode uit te voeren) is hetzelfde gebleven. Er zijn dus veel vormen (πολυ = veel, ή μορφή = de vorm) om hetzelfde doel te bereiken.
Polymorphisme - 1
Polymorphisme - 2
Polymorphisme - 3
Polymorphisme - 4
Afscherming van variabelen en methodfen in klassen In een klasse kon met het sleutelwoord public worden aangegeven dat leden van de klasse door niet-leden van de klasse konden worden worden gebruikt en veranderd. De sleutelwoorden private en protected complementeren public: Private : slechts deze klasse zelf, zonder de afgeleide klassen, mag deze variabelen en methoden gebruiken. Protected: slechts deze klasse zelf, met inbegrip van de afgeleide klassen, mag deze variabelen en methoden gebruiken.
Protected voorbeeld
File I/O in C++
File I/O wordt in C++ mogelijk gemaakt door de klasse fstream. Deze biedt een superset aan van de in stdio.h aangeboden funkties voor file I/o met de taal C.
File I/O met fstream - 1
File I/O met fstream - 2
I/O operaties op array variabelen
In C++ is het gebruik van de fstream klasse niet beperkt tot I/O streams. Fstream kan ook worden gebruikt bij arrays van karakter variabelen.
File I/O op karakter arrays
File I/O formatting
De fstream klasse bevat een aantal members die formattering van de stream mogelijk maken. Zie de documentatie van fstream in het C++ referentieboek.
File I/O formatting voorbeeld
Voorbeelden en copyright Bijna alle voorbeelden in deze presentaties zijn ontleend aan de uitstekende introductie C++ voor C programmeurs door Eric Brasseur (
[email protected]) op : http://www.4p8.com/eric.brasseur/cppcen.html Voor het overige is van toepassing: ©2004-2010 ir drs E.J Boks Hogeschool van Arnhem en Nijmegen Arnhem, Nederland http://www.han-ese.nl
Aan de slag !
Verder met practicumopdracht 2