Witam,
Ostatnio męczę się z operatorem indeksowania do macierzy. Macierz mam na tablicy wskaźników, nie na vectorze i tak chciałbym żeby zostało. Tak samo nie mogę zamienić na operator (), musi to być [][]. Czytałem już dużo o tym na internecie, ale nie znalazłem oczekiwanego rezultatu. Oto co próbowałem:
Array.h:
struct Row;
class Array
{
public:
const int m;
const int n;
int** array;
Array(int m = 0, int n = 0);
Row operator[](int index);
};
struct Row
{
int* array;
Row(int* _array) : array(_array) {};
int& operator[](int index)
{
return array[index];
}
};
Array.cpp:
Row Array::operator[](int index)
{
return Row(this->array[index]);
}
Oczywiście nie wstawiałem całego kodu, bo stwierdziłem nie ma to większego znaczenia. Wszystko co potrzebne oczywiście jest :) -> konstruktory, destruktory itp.