Ik heb een std::vector<double>-wrapper en een vector-initializer geschreven die mij de mogelijkheid geven de comma-operator te overloaden om zo makkelijk data in een std::vector<double> te pushen.
De classes:
Het programma:
Als ik het programma uitvoer verwacht ik dat vec.data één double bevat (1), maar vec.data bevat twee doubles (1 en 2). Waarom is dat zo?
De classes:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| class vinit // vector-initializer { std::vector<double>* data; public: vinit(std::vector<double>* data) { this->data = data; } vinit operator,(const double& number) { data->push_back(number); return vinit(data); } }; struct vector // std::vector<double>-wrapper { std::vector<double> data; vinit operator=(const double& number) { data.resize(0); data.push_back(number); return vinit(&data); } }; |
Het programma:
C++:
1
2
3
| vector vec; vec = 1,2,3,4; vec = 1; |
Als ik het programma uitvoer verwacht ik dat vec.data één double bevat (1), maar vec.data bevat twee doubles (1 en 2). Waarom is dat zo?
PC load letter? What the fuck does that mean?