podwójne przeciążenie operatora indeksowania

0

Hej, mam problem z przeciążeniem operatora indeksowania w c++. Mam klasę która zawiera pewne dane i mam udostępnić możliwość odwoływania się do tych danych jak do dwuwymiarowej tablicy. Napisałem sobie klasę która zawierała w sobie dwuwymiarową tablicę i udało mi się tak przeciążyć operator indeksowania by wydobyć odpowiedni element z tej tablicy, to zrobiłem tak na próbę, to co mam zrobić jest trochę trudniejsze. Zmienne z obu indeksów są mi potrzebne naraz, zobrazuję ten problem w ten sposób, że chcę za pomocą operatorów indeksowania przesłać dwie wartości do funkcji dodaj, jednak w tym kodzie coś mi nie działa i nie mogę dojść do tego co jest nie tak, bardzo proszę o pomoc.

class B
{
public:
	A& a;
	int liczba;
	B(A& aa, int l):a(aa),liczba(l) {}
	int operator[](int m)
	{
		return a.dodaj(liczba,m);
	}

};
class A
{
public:
	int dodaj(int a,int b)
	{
		return a+b;
	}

	B operator[](int n)
	{
		B b(*this,n);
		return b;
	}
	
};


void main()
{
	A obiektA;
	cout<<obiektA[3][4];

	char tmp; cin>>tmp;
} 
0

a przecież @Rev podał **dzisiaj **taki ładny przykład

Przeciążanie operatora []

ale ktoś jest leniwy i po prostu nie używa opcji "szukaj" lub jest egoistyczny.

0

Leniwy może i tak, ale egoistyczny to nie wiem skąd wziąłeś. Obejrzałem przed chwilą ten przykład który mi zlinkowałeś, wszystko ładnie ale mój problem jest nieco inny, bo ja potrzebuję by ten pomocniczy obiekt posiadał referencję do głównego obiektu i wykonał pewne operacje na jego polach/metodach. Mógłby mi ktoś podpowiedzieć co w moim kodzie jest nie tak? Z góry dziękuję.

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