Przeładowanie operatora [] a 3-wymiarowa tablica w pliku bin.

0

Witam!
Piszę program w c++ i chcę tak przeładować operator [] abym mógł do elementów w pliku binarnym odwoływać się za pomocą wyrażęnia tab[a][b][c].
Wiem jak przeładować operator [] dla tablicy jedno i dwuwymiarowej natomiast nie mam zielonego pojęcia jak się za to zabrać jeśli chodzi o 3 lub więcej wymiarów.
Z góry dziękuje za pomoc!!!
pozdro.

1

To jest bardzo proste.
Rozwiązania są dwa:

  1. Proste. Użyj operator() - on może mieć dowolną ilość argumentów.
  2. Bardziej skomplikowane: Musisz stworzyć klasy pomocnicze, które pozwolą na dostęp do fragmentu danych. Czyli
class TwojaKlasa;

class SubVector {
public:
    ...

    TypTwoichDanych& operator[](int i);
    const TypTwoichDanych& operator[](int i) const;

private:
      TwojaKlasa* data;
      int indexPodmacierzy;
      int indexPodwektora;
}

class SubMatrix {
public:
    ...

    SubVector operator[](int i);
    const SubVector operator[](int i) const;
private:
      TwojaKlasa* data;
      int indexPodmacierzy;
}

class TwojaKlasa{
public:
    ...

    SubMatrix operator[](int i);
    const SubMatrix operator[](int i) const;
}
0

Dzięki bardzo za pomoc znalazlem troche inne rozwiązanie aby nie odwoływać się do tablicy 3- wymiarowej tylko do dwu.
Jednak na pewno po napisaniu porgramu postaram sie zrobić tak jak ty radziłeś choćby po to aby sie nauczyć czegoś:)
jeszcze raz wielkie dzięki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1