Operator to jeden lub kilka znaków (zazwyczaj nie będących literami), które mają specjalne znaczenie w języku programowania. W C++ wyróżniamy następujące rodzaje operatorów:
  • Operatory arytmetyczne:
    • + - dodawanie
    • - - odejmowanie
    • * - mnożenie
    • / - dzielenie
    • % - modulo (reszta z dzielenia)

  • Operatory bitowe:

    • << - przesunięcie w lewo
    • >> - przesunięcie w prawo
    • ~ - negacja bitowa
    • & - bitowy iloczyn logiczny (bitowa koniunkcja)
    • | - bitowa suma logiczna
    • ^ - bitowa różnica symetryczna

  • Operatory porównania:

    • < - mniejszy niż
    • <= - mniejszy bądź równy
    • > - większy od
    • >= - większy bądź równy
    • == - równy
    • != - różny od

  • Operatory logiczne:

    • ! - negacja
    • && - iloczyn logiczny
    • || - suma logiczna

  • Operatory przypisania:

    • = - zwykłe przypisanie
    • += - dodaj i przypisz
    • -= - odejmij i przypisz
    • *= - mnóż i przypisz
    • /= - dziel i przypisz
    • %= - modulo i przypisz
    • &= - koniunkcja i przypisanie
    • |= - alternatywa i przypisanie
    • ^= - bitowa różnica symetryczna i przypisanie
    • <<= - przesunięcie w lewo i przypisanie
    • >>= - przesunięcie w prawo i przypisanie

  • Operatory rzutowania:

    • [[C/old_cast|rzutowanie w stylu C]] - wciąż istnieje, ale jest niezalecane
    • [[C/const_cast|const_cast]]
    • [[C/static_cast|static_cast]]
    • [[C/dynamic_cast|dynamic_cast]]
    • [[C/reinterpret_cast|reinterpret_cast]]
    • [[C/safe_cast|safe_cast]] - wprowadzony na potrzeby platformy .Net w C++/CLI

  • Operatory wskaźnikowe:

    • &
    • *
    • []

  • Operatory pamięci:

    • [[C/new]]
    • [[C/delete]]
    • [[C/new|new[] ]]
    • [[C/delete|delete[]]]

  • Operator [[C/sizeof]]

  • Operator zasięgu:

    • ::

  • Operator wyłuskania:

    • . - dla obiektu
    • -> - dla wskaźnika do obiektu

  • Operator warunkowy (trójperandowy):

    • ? (warunek ? powodzenie : niepowodzenie)

  • Operator rzucania wyjątku:

    • [[C/throw]]

  • Nawiasy okrągłe:

    • (
    • )

  • Przecinek:

    • ,

Artykuł  został umieszczony na liście Zalążków artykułów. Jeżeli możesz rozbuduj go!

9 komentarzy

Brak avatara
Napisany 2008-04-27 22:18 przez ne0

1)dodac operator this
2) przeladowanie operatorw.

Avatar: Coldpeer
Napisany 2008-04-28 15:16 przez Coldpeer

apropos przeładowania operatorow - od tego jest osobny artykuł (tzn. jeszcze nie ma)

Avatar: Marooned
Napisany 2007-03-25 15:00 przez Marooned

1) new[] nie może być linkiem, nazwą jak widać - linkuje tylko new[
2) nieścisłości językowe: przypisz, przypisanie - raz tak, raz tak
3) dla ?: spotkałem się z nazwą "ternariusz" i nawet chyba używałem tej nazwy
4) trójperandowy - miało być trójoperandowy czy to jakaś nowa nazwa? [serio pytam :P]

Brak avatara
Napisany 2007-03-22 18:31 przez marusiadj

no własnie dobra uwaga, czemu nie ma operatora-- ani ++.akurat mi jest to potrzebne i myslalam że tu znajd.:)

Brak avatara
Napisany 2006-11-12 16:40 przez Miczu

Zostawiam artykuł (na razie) do poprawy literek i dodania znaczeń operatrów ^^

Brak avatara
Napisany 2006-10-09 22:42 przez maxbog

Kooba: co nie zmienia faktu, że są to operatory i można o nich wspomnieć w artykule o tychże

Avatar: Kooba
Napisany 2006-09-09 14:51 przez Kooba

Coldpeer: rzutowanie zdecydowanie nadaje sie na osobny art http://4programmers.net/C/Rzutowanie

Brak avatara
Napisany 2006-09-09 08:29 przez Jojersztajner

Coldpeer:
1. ?zasięg? i ?wyłuskanie? brzmią dobrze, nie marudź
3. albo może ?trynarny? (ang. <i>ternary</i>)?
4. nawiasy wpływają na kolejność wykonywania innych operatorów, mogą być więc nazywane operatorami (albo lepiej: <i>metaoperatorami</i>)
5, 7 i 8 - zrobię

Avatar: Coldpeer
Napisany 2006-09-09 00:55 przez Coldpeer

1) Można by trochę urozmaicić, poprawić niektóre nazwy bo np. trochę dziwna ta nazwa"wyłuskania" (raczej jest to "wskaźnik do obiektu") albo "zasięgu" - trochę dziwnie brzmi, sugeruję "dostępu" - ot taka mała moja sugestia
2) Przydałoby się dodać jakieś przykłady, rozbudować tekst
3) Co do operatora warunkowego, ja bym to nazwał "trójperandowy" albo po prostu "operator ?" - ale ok. Tak też może być.
4) Nawiasy okrągłe to też operatory?
5) Dodać inne niewymienione operatory, jak np. postinkrementacji (++), czy dekrementacji (--) [arytmetyczne]
6) Dodać operatory rzutowania: static_cast, const_cast itd.
7) Dodać operator rzucenia wyjątku throw?
8) Zrobić linki operatorów takich jak new, delete, sizeof poprzez np. [[C/sizeof]]

Pozdrawiam

4programmers.net