Przeciążenie operatora () w celu nadania wartości
Ostatnio zmodyfikowano 2016-03-30 13:01
Blonnik Temat założony przez niniejszego użytkownika |
Przeciążenie operatora () w celu nadania wartości » 2016-03-29 11:54:25 Cześć. Mam klasę macierz i chciałbym przeciążyć operator () tak, żeby zwracał wartość komórki (x,y) i tak, żeby można jej było nadać wartość. Np: x = mat( 5, 6 );
mat( 3, 4 ) = 8;
Zwracanie wartości nie jest dla mnie problemem, robię to tak: int Matrix::operator ()( int x, int y ) { return tab[ M * y + x - 1 ]; }
Ale jak zrobić to przypisanie ? |
|
carlosmay |
» 2016-03-29 12:04:03 Mam klasę macierz i chciałbym przeciążyć operator () |
Dostęp do elementów macierzy daje operator [], więc ten operator należy przeciążyć. Przeciążanie operatorówUżywamy głównie jako operator wywołania, np. predykatu. |
|
oputyk |
» 2016-03-29 12:06:34 A spróbuj zwrócić referencję: & int Matrix::operator ()( int x, int y ) { return tab[ M * y + x - 1 ]; }
|
|
mateczek |
» 2016-03-30 13:01:04 http://cpp0x.pl/forum/temat/?id=22546&p=2 3 ostatnie posty wiem, że głupie ale takie wymagania zadania |
wcale nie głupie !!! Spróbuj prosto zadeklarować dynamicznie pamięć dla macierzy 2d. Moim zdaniem takie rozwiązanie z tablicą pojedyńczą jest jak najbardziej ok. |
|
« 1 » |