Code:
#include <iostream.h>
template <class T>
class Polje
{
public:
T* polje;
Polje(int n){
polje = new T[n];
}
~Polje() {delete[] polje;}
T operator [](int indeks){
return polje[indeks];
}
};
int main(int argc, char* argv[])
{
Polje <int> A(10);
for(int i = 0; i < 10; i++)
A.polje[i] = i;
cout << A[5]; // vraća A.polje[5]
A[5] = 10; // greška!
return 0;
}
#include <iostream.h>
template <class T>
class Polje
{
public:
T* polje;
Polje(int n){
polje = new T[n];
}
~Polje() {delete[] polje;}
T operator [](int indeks){
return polje[indeks];
}
};
int main(int argc, char* argv[])
{
Polje <int> A(10);
for(int i = 0; i < 10; i++)
A.polje[i] = i;
cout << A[5]; // vraća A.polje[5]
A[5] = 10; // greška!
return 0;
}
Stvar je u tome što želim implementirati operator [] na način da se preko njega može adresirati polje unutar predloška, i to PRILIKOM INICIJALIZACIJE neke vrijednosti tj. pri upotrebi operatora =. Kao što vidite, implementacija radi kada treba vratiti vrijednost nekog elementa u polju na nekom indeksu, ali kada tom istom elementu polja želim dodati vrijednost onda ne radi.
Iskreno, ne znam kako da implementiram operator pridruživanja za ovaj slučaj...