[ Ivan Vasić @ 24.03.2004. 22:22 ] @
Imam definisanu dinamicku matricu na sledeci nacin :
int **mat, m, n;
m i n su dimenzije. (U konstruktoru sa 2 petlje dodelim memoriju i popunim matricu....)

Kako da napravim operator za pristup elementima matrice ???

Probao sam overload operatora [] ali on može da "radi" samo sa jednom dimenzijom (da je niz u pitanju sve bi bilo OK ali ovako ne funkcioniše jer meni treba mat[][] !!!)
Jel može sa [] ili nekako drugačije ?

Poželjno bi bilo da mogu i da upišem elemente i da ih čitam istim operatorom.

ako treba mogu da pošaljem kod kojim sam overloadovao []
[ darkosos @ 25.03.2004. 06:27 ] @
Nisam baš neki stručnjak, ali ako si napravio klasu, onda bi rešenje bilo da napraviš prvo klasu npr. "red" i u njoj operator [] koji vraća element. Onda napraviš klasu "matrica" koja ima niz redova i u njoj kodiraš operator [] koji vraća red.
[ sspasic @ 25.03.2004. 10:34 ] @
Najbolje je ovako kako je rekao Darko, ali u ovom slučaju možeš i da iskoristiš
osobinu tipa int * da se ponaša kao niz, tj. ovde kao red matrice, pa bi operator
izgledao ovako:
Code:

    int *operator[](int i) { return mat[i]; }

[ Ivan Vasić @ 25.03.2004. 13:28 ] @
Mislim da ovo nije baš rešenje koje mi treba...
Može ovako ali ne bi baš trebalo da pravim novu klasu.

Jel ima možda neko optimalnije rešenje ?

Možda da se primeni operator na operator tipa : Matrica[][] ?
Da li možda može ovako nekako ?
[ leka @ 25.03.2004. 13:56 ] @
Bas mora operator ili moze Element(uint red, uint kolon) ? :)
[ Ivan Vasić @ 25.03.2004. 14:30 ] @
Uff pa bilo bi fino kad ne bi morao operator

Evo dela teksta zadatka:
Citat:
Kreirati apstraktnu klasu KLASA1 koja u zaštićenom delu sadrži dimenzije matrice i celobrojnu dinamičku matricu. U javnom delu definisati: konstruktor, destruktor, operatorsku funkciju za pristup elementima matrice, inline funkcije ...



da, da ...
[ DDMM @ 25.03.2004. 15:38 ] @
A mozes da iskoristis i std::vector< std::vector< NekiMojTip > >.
Tu vec imas gotov operator[].

[ Ivan Vasić @ 25.03.2004. 20:13 ] @
Upalilo je rešenje sspasic-a
operator je vratio pokazivač na niz, a onda je "običan" operator [] od tog niza vratio elemenat (ili postavio - radi u oba smera)

valjda je to to što su tražili ne vidim da bi moglo drugačije ....