[C++] Przeciążenie operatora [][]

Witam serdecznie,

mam za zadanie napisać klasę, w której między innymi muszę przeciążyć właśnie operator [][]. Nie mam pojęcia jak do tego podejść. Program ma odczytać dwa parametry (kolumnę i wiersz) i wyświetlić wartość komórki.

Czyli dla przykładu:

cout << Matrix[2][4];

Gdyby chodziło o operator [] to nie miałbym z tym żadnego problemu. Ktoś nakieruje mnie na rozwiązanie mojego problemu?

jeżeli operator [] zwróci np double*

to Matrix[y] - jest tablicą double - double *

więc Matrix[y][x] - to double.

Drugi sposób - operator [] zwraca specjalną klasę wewnętrzną która z kolei ma przeciążony operator [].

Rozwiązanie trzecie: przeciążyć operator () z dwoma argumentami.

  • Jak zabić robala?

  • Trucizną lub kapciem.

  • Rozwiązanie trzecie, nie zabijać robala! :stuck_out_tongue_winking_eye:

Odpada bo to nie jest przeciążenie operatora[] :stuck_out_tongue:

Pytanie po co chcesz go przeciążać ;)? Ale operator [] podobno potrafisz przeciążyć, a operator [][] nie istnieje :P. Co rozwiązuje Twoje problemy z nim związane :D.

linux_to_syf_^^ , gdybym za zadanie miał przeciążyć [] w dowolny sposób to bym nie zakładał tematu :stuck_out_tongue:

Właśnie chodzi o to, że operator [][] nie istnieje. Jak masz tablicę dwuwymiarową to tak naprawdę tablica tablic w uproszczeniu. Tak więc pierwszym operatorem[] wyciągasz z tablicy tablic tablicę, a następnie drugim operatorem [] wyciągasz już pojedynczy element tablicy. Nie dałeś konkretnego przykładu więc ciężko doradzić. Pokaż swoją klasę a wtedy będzie łatwiej.

http://www.parashift.com/c+±faq/matrix … array.html

http://www.parashift.com/c+±faq/matrix … cript.html