Ik ben na lange tijd weer wat aan het programmeren (in mql4, wat lijkt op C++) en kom niet helemaal uit de volgende case. Ik zal hem iets versimpeld weergeven.
Stel ik heb een fiets en van die fiets wil ik een klasse maken. Dit doe ik met de volgende code:
Die fiets kan iets doen dmv de methode DoeIets.
Nu zitten er wielen aan een fiets en die Dat wiel definieer ik met de wiel klasse:
Elk wiel heeft dus een methode Draai.
De methoden heb ik uiteraard ook in de code staan:
Nu wil ik dus dat elke fiets standaard 2 wielen meekrijgt op het moment dat er in mijn programma een Fiets aangemaakt wordt. Ik dacht dit te doen in de klasse Fiets dit op te nemen:
Zodat ik binnen de methodes van de klasse Fiets altijd een Wiel en zijn functie kan aanroepen met bijvoorbeeld wiel1.Draai(); Het probleem echter is dat ik in de constructor van Fiets geen variabelen aan mag maken van het type Wiel, alleen de standaard int, bool, double, enz. Ik krijg dan de error 'declaration without type'.
Welke fout maak ik hier? Ik wil Wiel wel als klasse hebben omdat ik de optie wil hebben om binnen Fiets nog meer objecten van Wiel aan te maken.
Stel ik heb een fiets en van die fiets wil ik een klasse maken. Dit doe ik met de volgende code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| class Fiets { private: int variableA; bool variableB; public: void Fiets(int A, bool B) { variableA = A; variableB = B; }; void DoeIets(); }; |
Die fiets kan iets doen dmv de methode DoeIets.
Nu zitten er wielen aan een fiets en die Dat wiel definieer ik met de wiel klasse:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| class Wiel { private: int VariableC; public: void Wiel(int C) { VariableC = C; }; double Draai(); }; |
Elk wiel heeft dus een methode Draai.
De methoden heb ik uiteraard ook in de code staan:
code:
1
2
3
4
5
6
7
8
9
| void Fiets::DoeIets() { //Doe iets } double Wiel::Draai() { return(2.0); } |
Nu wil ik dus dat elke fiets standaard 2 wielen meekrijgt op het moment dat er in mijn programma een Fiets aangemaakt wordt. Ik dacht dit te doen in de klasse Fiets dit op te nemen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| class Fiets { private: int variableA; bool variableB; Wiel wiel1; Wiel wiel2; public: void Fiets(int A, bool B) { variableA = A; variableB = B; wiel1 = wiel1(1); wiel2 = wiel2(2); }; void DoeIets(); }; |
Zodat ik binnen de methodes van de klasse Fiets altijd een Wiel en zijn functie kan aanroepen met bijvoorbeeld wiel1.Draai(); Het probleem echter is dat ik in de constructor van Fiets geen variabelen aan mag maken van het type Wiel, alleen de standaard int, bool, double, enz. Ik krijg dan de error 'declaration without type'.
Welke fout maak ik hier? Ik wil Wiel wel als klasse hebben omdat ik de optie wil hebben om binnen Fiets nog meer objecten van Wiel aan te maken.