System.Set.Create
C++
__fastcall Set() {memset(SetBaseT::Data, 0, sizeof (SetBaseT::Data));}
__fastcall Set(const Set& src)
explicit __fastcall Set(const int& src)
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
constructor | public | sysset.h | System | Set |
Description
Set est un template C++ pour l'émulation des types Set trouvés dans Delphi.
Set est un template permettant de déclarer les types Set compatibles avec les types "set of" de Delphi.
Un type Set est déclaré avec trois paramètres :
Paramètre | Utilisation |
---|---|
T |
Le type de l'élément (habituellement int, char ou un type énuméré) |
minEl |
La valeur minimale que l'ensemble peut avoir (cette valeur ne peut être inférieure à 0) |
maxEl |
La valeur maximale que l'ensemble peut avoir (cette valeur ne peut être supérieure à 255) |
Deux types Set sont distincts si l'un des trois paramètres de modèle est différent :
Set <char, 'A', 'C'> s1; Set <char, 'X', 'Z'> s2; if (s1 == s2) // ERROR: == non implémenté pour le second type ensemble
Pour créer plusieurs instances d'un type Set, utilisez une expression typedef.
typedef Set <char, 'A','Z'> UPPERCASESet;
La déclaration d'une variable Set n'initialise pas la variable. Vous pouvez déclarer les types Set et les initialiser en utilisant l'opérateur <<, comme l'illustre cet exemple :
UPPERCASESet s1; s1 << 'A' << 'B' << 'C'; // Initialiser UPPERCASESet s2; s2 << 'X' << 'Y' << 'Z'; // Initialiser
Remarque : Pour exploiter les opérateurs de flux C++ (<< et >>) avec les types Set, vous devez utiliser #include <iostream> avant #include <sysset.h>. Cette opération est effectuée automatiquement si vous incluez vcl.h ou System.hpp. Les opérateurs de flux suivants sont définis :
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)