Ik ben bezig met een programma om mijn C++ kennis te vergroten. Maar ik krijg een vreemde fout met de ++operator. Hij schijnt niet naar behoren te werken. Ik doe het volgende:
Wat ik wil is dat hij de variable int customerCount eerst verhoogt en deze vervolgens als index gebruikt in de array. Hij verhoogt hem echter pas erna. Als ik ik hem apart eerst verhoog dan werkt het wel:
in principe werkt ie nu, maar ik wil weten wat hier aan mis gaat.
C++:
1
2
3
4
5
6
| Customer CustomerList::next() { if( (customerCount+1) >= MAX_NUMBER_OF_CUSTOMERS) return customer[customerCount]; return customer[++customerCount] = Customer(customerCount); } |
Text output:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| -------------0 [customer=0] [100|Marlboro|5.35][1] -------------1 [customer=0] [200|krant|1.25][2] -------------2 [customer=1] [200|krant|1.25][1] [202|Wenskaar|2.25][1] -------------3 [customer=2] [202|pr0n|2.25][4] |
Wat ik wil is dat hij de variable int customerCount eerst verhoogt en deze vervolgens als index gebruikt in de array. Hij verhoogt hem echter pas erna. Als ik ik hem apart eerst verhoog dan werkt het wel:
C++:
1
2
3
4
5
6
7
| Customer CustomerList::next() { if( (customerCount+1) >= MAX_NUMBER_OF_CUSTOMERS) return customer[customerCount]; customerCount++; return customer[customerCount] = Customer(customerCount); } |
Text output:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| -------------0 [customer=0] [100|Marlboro|5.35][1] -------------1 [customer=1] [200|krant|1.25][2] -------------2 [customer=2] [200|krant|1.25][1] [202|Wenskaar|2.25][1] -------------3 [customer=3] [202|pr0n|2.25][4] |
in principe werkt ie nu, maar ik wil weten wat hier aan mis gaat.