System.Set.Create
C++
__fastcall Set() {memset(SetBaseT::Data, 0, sizeof (SetBaseT::Data));}
__fastcall Set(const Set& src)
explicit __fastcall Set(const int& src)
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
constructor | public | sysset.h | System | Set |
Beschreibung
Set ist eine C++-Template zum Emulieren der Set-Typen von Delphi.
Set ist eine Template zum Deklarieren von Set-Typen, die mit den Delphi-Typen "set of" kompatibel sind.
Ein Set-Typ wird mit drei Parametern deklariert:
Parameter | Bedeutung |
---|---|
T |
Der Typ der Elemente (normalerweise int, char oder enum) |
minEl |
Der Minimalwert, den der Set-Typ aufnehmen kann (dieser Wert darf nicht kleiner als 0 sein) |
maxEl |
Der Maximalwert, den der Set-Typ aufnehmen kann (dieser Wert darf nicht größer als 255 sein) |
Zwei Set-Typen sind verschieden, wenn einer der drei Template-Parameter unterschiedlich ist:
Set <char, 'A', 'C'> s1; Set <char, 'X', 'Z'> s2; if (s1 == s2) // Fehler: == für den zweiten Set-Typ nicht implementiert
Um mehrere Instanzen eines Set-Typs zu erstellen, verwenden Sie einen typedef-Ausdruck.
typedef Set <char, 'A','Z'> UPPERCASESet;
Durch die Deklaration einer Set-Variable wird die Variable nicht initialisiert. Sie können Set-Typen mit dem Operator <<, wie im folgenden Beispiel, deklarieren und initialisieren:
UPPERCASESet s1; s1 << 'A' << 'B' << 'C'; // Initialisieren UPPERCASESet s2; s2 << 'X' << 'Y' << 'Z'; // Initialisieren
Hinweis: Für die Verwendung der C++-Streaming-Operatoren (<< und >>) mit Set-Typen müssen Sie #include <iostream> vor #include <sysset.h> angeben. Dies geschieht automatisch, wenn Sie vcl.h oder System.hpp einbeziehen. Die folgenden Stream-Operatoren sind definiert:
template <class T, unsigned char minEl, unsigned char maxEl> ostream& operator <<(ostream& os, const Set<T, minEl, maxEl> & arg); template <class T, unsigned char minEl, unsigned char maxEl> istream& operator >> (istream& is, Set<T, minEl, maxEl> & arg)