Thuis
Contacten

    Hoofdpagina


Programmeren in C++ voor beginners

Dovnload 5.04 Mb.

Programmeren in C++ voor beginners



Pagina31/49
Datum25.10.2017
Grootte5.04 Mb.

Dovnload 5.04 Mb.
1   ...   27   28   29   30   31   32   33   34   ...   49

Een member variable

Als we een int op willen slaan in ons Form, dan doen we dat nu via de Tag of Caption van een Component, bijvoorbeeld een TLabel. Dit is een visuele goed-werkende manier.


Maar om een int op te slaan, maken we een TLabel pointer aan. We maken veel meer aan dan we nodig hebben. Dit kan 'korter door de bocht'.
De data die we op willen slaan, kan gedeclareerd worden in Unit1.h zoals onderstaand voorbeeld:
class TForm1 : public TForm

{

__published: // IDE-managed Components

//Kylix dingen, afblijven dus!
private: // User declarations

int mX;
public: // User declarations

__fastcall TForm1(TComponent* Owner);

int mY;

};
Merk het volgende op:

* Het sleutelwoord class zou erop kunnen wijzen dat ons

Form een klasse is.

* Tussen de accolades zijn er drie gedeeltes: __published,

private en public.

* In commentaar wordt al aangegeven waar de gebruiker

('user') iets mag declareren

* Declareer niets in het __published gedeelte.

* Declareer je variabelen in het private of public

gedeelte. Het verschil tussen public en private wordt pas

duidelijk als we iets meer van klassen weten en met

meerdere Forms gaan werken.

* Ik begin deze variabele namen altijd met een 'm' van

'member', om aan te geven dat deze variabelen bij een

Form horen. Anderen geven de voorkeur deze variabele

namen te laten eindigen op een underscore.


Je kunt wisselen tussen Unit1.cpp en Unit1.h met de sneltoets CTRL-F6.
Hebben we deze variabelen correct gedefineerd, dan kunnen we dat meteen zien, door in de voorgeprogrammeerde Event van Form1 het volgende te doen:

Dankzij Class Browsing kunnen we zien waaruit ons Form bestaat.


Merk het volgende op:

* Onze variabelen mX en mY staan bovenaan (ook al is mX



private en mY public).

* Het lijstje dat verschijnt laat in de meest linker kolom

zien, of het een variabele, functie of Property betreft.

* Het lijstje laat van elke variabele het data type en de

naam zien.

* Het lijstje laat van elke functie het return data type en

de argumenten zien. In dit geval allemaal void. Er staat

wel overal 'TForm::' of andere dingen voor. Deze

aanduiding geeft aan waar de functies bij horen. Later

leren we hoe dit precies werkt.

* Het lijstje laat van alle Properties het data type en de

naam zien. Er staat wel overal 'TForm::' of andere dingen

voor. Deze aanduiding geeft aan waar de Properties bij

horen. Later leren we hoe dit precies werkt.


De voorgeprogrammeerde Event waarin we werken, heet de constructor van ons Form. Hierin kunnen we onze variabelen mooi initializeren met de normale schrijfwijze:
__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

Form1->mX = 10;



Form1->mY = 10;

}
Dit kan zelfs nog korter:


__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

mX = 10;


mY = 10;

}
Normaliter zou de compiler een foutmelding geven ('Undefined symbol 'mX'), maar omdat mX en mY onderdeel van ons Form kan de compiler deze nu wel vinden. In elke Event van TForm kun je bij de member variables van het TForm.


Merk ook op, dat met onderstaande syntax ook Class Browsing actief wordt:
__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

this->mX = 10;

this->mY = 10;

}
Later meer over this.


Het declaren van const member variables leren we later.
    1. Een std::vector

De std::vector (spreek uit 'standaard vector' or 'vector') is ons eerste C++ data type waarmee we leren werken. De std::vector is geen onderdeel van de CLX, maar van de STL, de 'Standard Template Library', de officiele C++ standaard bibliotheek. De STL is volledig platform-onafhankelijk. De std::vector wordt een 'container class' genoemd, omdat deze gemaakt is om variabelen te bevatten.






Je kunt ook gewoon een array gebruiken.






Gebruik std::vector in plaats van een array.

De verschillen tussen std::vector en TStringGrid zijn als volgt:







TStringGrid

std::vector

Bibliotheek

CLX

STL

Dimensies

0,1 of 2

Elke

Data type

String

Elke

Visueel

Ja

Nee

Voor het gebruik van de std::vector, moet eerst de header file vector.h worden ge-#included:


#include
De syntax om een std::vector te declareren is als volgt:
std::vector< /* data type */ > /* identifier */;
Bijvoorbeeld:
std::vector<int> v;
Nu hebben we een 1-dimensionale std::vector gedeclareerd die integers op kan slaan.
Type het volgende om te zien wat een std::vector kan:


Class Browsing laat ons de functies zien die een std::vector<int> kan.
1   ...   27   28   29   30   31   32   33   34   ...   49

  • Een std::vector

  • Dovnload 5.04 Mb.