- . operatora kropki umożliwiającego uzyskiwanie bezpośredniego dostępu do pół struktur i klas,

- .* operatora wskazującego wybrany element klasy,

- :: operatora rozróżniania zakresu,

- ?: operatora warunkowego.

Przeładowywanie jednoargumentowych operatorów ++ oraz -Jako przykład praktycznego wykorzystania przeładowanego operatora postinkrementacji ++ posłuży nam sytuacja zliczania elementów ciągu znaków wprowadzonych z klawiatury. W celu przeładowania jednoargumentowego operatora ++ w pierwszej kolejności musimy zaprojektować odpowiednią funkcję operatorową. Każda funkcja operatorowa powinna mieć możliwość wykonywania odpowiednich operacji na właściwych egzemplarzach klasy (lub obiektu), inaczej mówiąc, powinna w stosunku do odpowiedniej klasy posiadać status funkcji zaprzyjaźnionej lub być normalną metodą w klasie. Zaprojektujemy prostą klasę o nazwie counter (licznik):

Ponieważ celem naszym będzie zwiększanie w odpowiedni sposób (postinkrementowanie) wartości pola number egzemplarza add klasy counter, funkcja operatorowa przybierze nieskomplikowaną postać:

Zauważmy, iż funkcja ta, będąc normalną metodą w klasie, nie posiada jawnych argumentów i w momencie wywołania otrzymuje niejawny wskaźnik this do własnego egzemplarza klasy. Dzięki posiadaniu niejawnego wskaźnika this funkcja ma możliwość postinkrementowania wartości pola number własnego egzemplarza klasy.

Ćwiczenie 3.1.

Każda funkcja składowa klasy otrzymuje niejawnie argument w postaci wskaźnika do obiektu, który ją wywołał, i do którego uzyskuje się dostęp, wykorzystując słowo kluczowe (wskaźnik) this. Funkcje składowe przeładowywanych operatorów jednoargumentowych nie potrzebują żadnych jawnie zadeklarowanych parametrów formalnych. Jedynym argumentem, którego należy użyć, jest wskaźnik this, będący w rzeczywistości wskaźnikiem do egzemplarza klasy, a nie jego kopią. Konsekwencją tego jest fakt, iż wszystkie modyfikacje wykonane za jego pośrednictwem przez funkcję operatora modyfikują zawartość wywoływanego egzemplarza klasy. Przykład wykorzystania funkcji operator++() przeładowanego operatora ++ w celu zliczania znaków wprowadzanych z klawiatury zamieszczono na listingu 3.1. Koniec ciągu wprowadzanych znaków oznaczamy klawiszem Esc.

