Thuis
Contacten

    Hoofdpagina


Programmeren in C++ voor beginners

Dovnload 5.04 Mb.

Programmeren in C++ voor beginners



Pagina42/49
Datum25.10.2017
Grootte5.04 Mb.

Dovnload 5.04 Mb.
1   ...   38   39   40   41   42   43   44   45   ...   49

Een mogelijk eindprogramma van vandaag.
Vandaag leren we de basis van een klasse. Hierdoor leren we ons Form als klasse te zien en kunnen we met meerdere Forms werken.
    1. Een klasse

Een klasse is een data type dat ervoor zorgt dat 'ie altijd in een geldige staat is.


Onderstaand data type garandeert niet in een geldige staat te zijn:
struct Klok

{

int mUren;



int mMinuten;

};
Bovenstaand data type kan immers gemakkelijk ongeldig gemaakt worden:


Klok k;

k.mUren = 1000; //Oei! Een dag heeft maar 24 uur!

k.mMinuten = 1000; //Oei! Een uur heeft maar 60 minuten!
Een klasse beschermt zijn data. Dit wordt 'encapsulating' genoemd. Een klasse kan zijn data beschermen doordat zijn leden public en private) kunnen zijn. Het idee is dat de variabelen private zijn, en dat deze met gecontroleerde public methoden kunnen worden gelezen/veranderd.
struct Klok

{

public: //Overbodig


int GetUren()

{

assert(mUren >=0 );



assert(mUren < 12); //Keuze van de ontwerper

return mUren;

}

int GetMinuten()

{

assert(mMinuten >=0 );



assert(mMinuten < 60);

return mMinuten;

}
void SetUren(const int uren)

{

assert(uren >=0 );



assert(uren < 12); //Keuze van de ontwerper

mUren = uren;

}

void SetMinuten(const int minuten)

{

assert(minuten >=0 );



assert(minuten < 60);

mMinuten = minuten;

}

private:

int mUren;

int mMinuten;

};
Merk het volgende op:

* De schrijfwijze lijkt heel erg op die van ons Form.

Alleen staat de code in een stuk tekst, inplaats van over

twee bestanden verdeeld.

* Er zijn twee secties: de public en private sectie. Deze

worden aangegeven met een dubbele punt op het einde.

* Het keyword om deze klasse te declareren is struct.

* Een struct staat standaard op public. Daarom is de regel

'public:' overbodig.

* Het aantal uren en minuten zijn private. Deze kunnen niet

direct worden gewijzigd.

* Er zijn Get- en Setfuncties. Dit worden 'getters' en

'setters' genoemd.

* De methoden mogen wel bij het private gedeelte.

* De Setfuncties controleren of deze geldige input binnen

krijgen.

* De Getfuncties controleren of deze geldige waarden



hebben.




Maak je lidvariabelen private, behalve in C-style structs.

Als deze klasse goed ingetypt is, dan kunnen we met Class Browsing zien, dat we inderdaad alleen het public gedeelte kunnen zien en kiezen.




De Class Browser laat alleen het public gedeelte van onze klasse zien.
Schrijven we toch onderstaande code, dan treedt de melding eronder op.
Klok k;

k.mUren = 69;


[C++ Error] Unit1.cpp(53): E2247 'Klok::mUren' is not accessible




Maak het gemakkelijk een klasse goed te gebruiken en maak het moeilijk een klasse verkeerd te gebruiken.



1   ...   38   39   40   41   42   43   44   45   ...   49


Dovnload 5.04 Mb.