Piszę klasę kolekcji. Chcę przeciążać operator nawias kwadratowy ([]), aby zapewnić dostęp do elementów w kolekcji.Przeciążanie operatora nawiasów kwadratowych do wartości akceptowanej
int operator[](int i)
{
// Do stuff here
}
Moim problemem jest to, że nie widzę, jak napisać to tak, że mogę użyć tego operatora przyjąć wartość:
myClassInstance[0] = value;
widzę żadnego sposobu deklarowania kwadratowy wsporniki z operatorem dodatkowy argument (wartość do przypisania do elementu).
Wiem, że mogę po prostu zwrócić int &, a dzwoniący może przypisać do tego wartość, ale wewnętrznie każdy element jest przechowywany w innym formacie niż ten opublikowany.
Czy to możliwe?
potrzebne są dwa [] (int) wersje operatora. wersję const i wersję niestałą, o którą prosiłeś. Oryginalna wersja powinna mieć const za tym, aby wywołać obiekt const; –
@Edwin: Widziałem twój drugi komentarz. Zrobię to. Dzięki. –