operators
Aus cppreference.com
![]() |
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
Inhaltsverzeichnis |
[Bearbeiten] Überladen von Operatoren
[Bearbeiten] Syntax
type operator op ( params ) ;
|
|||||||||
[Bearbeiten] Erklärung
- <type> ist / sind die Art (en) der Variablen .Original:<type> is/are the type(s) of the variables.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions. - <op> die jeweiligen Betreiber (zB
+
,+=
,<<
,>>
,&&
,||
,%
, etc.) .Original:<op> is the particular operator (e.g.+
,+=
,<<
,>>
,&&
,||
,%
, etc.).The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions. - <params> ist / sind der Name (n) der erforderlichen Parameter (abhängig vom Netzbetreiber) .Original:<params> is/are the name(s) of the required parameters (depends on the operator).The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
[Bearbeiten] Einschränkungen
- Sie können keine neuen Operatoren wie
**
oder&|
.Original:You cannot create new operators such as**
or&|
.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions. - Nicht alle Operatoren können überladen werdenOriginal:Not all operators can be overloadedThe text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions. - Einige Betreiber kann nur als nicht statische Klasse Mitglieder überlastet werdenOriginal:Some operators can only be overloaded as non-static class membersThe text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions. - Kurzschluss-Auswertung nicht mit überladenen Operatoren arbeitenOriginal:Short-circuit evaluation doesn't work with overloaded operatorsThe text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
[Bearbeiten] Operator Anrufe
Überladene Operatoren Aufruf erfolgt über den üblichen Infix-Notation werden
Original:
Overloaded operators can be called using the usual infix notation
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
a+b
oder eine Funktion-ähnlichen Notation
Original:
or a function-like notation
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
operator+(a,b)
[Bearbeiten] Beispiel
#include <iostream> using namespace std; class Fraction{ private: int numerator, denominator; public: Fraction(int n, int d): numerator(n), denominator(d) {} // Note that the keyword operator combined with an actual // operator is used as the function name friend ostream& operator<<(ostream&, Fraction&); }; ostream& operator<<(ostream& out, Fraction& f){ out << f.numerator << '/' << f.denominator; return out; } int main(){ Fraction f1(3, 8); Fraction f2(1, 2); cout << f1 << endl; cout << 3 << ' ' << f2 << endl; return 0; }
Output:
3/8 3 1/2
[Bearbeiten] Siehe auch
Common operators | ||||||
---|---|---|---|---|---|---|
Zuweisungen | incrementNJdecrement | Arithmetik | logisch | Vergleich | memberNJaccess | andererseits |
a = b |
++a |
+a |
!a |
a == b |
a[b] |
a(...) |
Special operators | ||||||
static_cast wandelt einem Typ in einen anderen kompatiblen Typ
Original: static_cast converts one type to another compatible type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. dynamic_cast wandelt virtuellen Basisklasse abgeleitet class
Original: dynamic_cast converts virtual base class to derived class The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. const_cast wandelt Typ kompatiblen Typ mit unterschiedlichen cv qualifiers
Original: The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. reinterpret_cast wandelt Typ inkompatibel type
Original: reinterpret_cast converts type to incompatible type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. new ordnet memory
Original: new allocates memory The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. delete freigibt memory
Original: delete deallocates memory The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. sizeof fragt die Größe eines type
Original: sizeof queries the size of a type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. sizeof... fragt die Größe eines Parameter Pack (seit C++11)
Original: The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. typeid fragt die Typinformationen eines type
Original: typeid queries the type information of a type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. noexcept prüft, ob ein Ausdruck eine Ausnahme (seit C++11)
werfen kann Original: The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. alignof Abfragen Ausrichtungsanforderungen eines Typs (seit C++11)
Original: alignof queries alignment requirements of a type (seit C++11) The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |