Приложение. Классы AnsiString и Set

В VCL для представления текстовых строк используются не символьные массивы и не шаблон стандартной библиотеки, а строки Object Pascal. Кроме того, многие свойства компонентов представлены множествами этого языка. Для моделирования таких объектов C++Builder реализует классы AnsiString и Set. В этом приложении мы даем краткое описание этих классов.

Класс AnsiString

Класс AnsiString определяется в заголовке dstring.h. Конструктор этого класса перегружен, так что строки можно инициализировать различными способами — другой строкой, строкой С (указателем на char), а также целыми типами. В последнем случае строка будет содержать текстовое представление числа.

Методы

Мы не будем приводить здесь полное описание всех методов AnsiString, а расскажем только о важнейших.

(sffGeneral, sffExponent, sffFixed,

sffMumber, sffCurrency };

static AnsiString _fastcall FloatToStrF(long double value, TStringFloatFormat format, int precision, int digits) ;

Производит преобразование числа с плавающей точкой в текстовую форму в соответствии с указанным форматом.

Возвращает строку, преобразованную в верхний регистр в соответствии с текущим локалом Windows. He изменяет исходную строку. В классе AnsiString реализованы операции присваивания, сложения (возвращает конкатенацию строк), индексации (возвращает символ с указанным индексом) и отношений (сравниваются ASCII-значения входящих В строку символов).

Если перед dstring.h включается заголовок iuatrcam кла директива

#define vcl_iostream

то строки можно использовать в операторах ввода/вывода потоков C++ с операциями “ и ”.

Класс Set

Set — это шаблон, определенный в заголовке sysset.h:

tempiate<class T, unsigned char minEl, unsigned char maxEl>

class _declspec(delphireturn) Set;

При объявлении конкретного класса нужно задать следующие параметры: тип элементов (обычто целый, символьный или перечисление), минимальное значение, которое может содержать множество (должно быть не меньше 0), и максимальное значение, которое может входить в множество (должно быть не больше 255). Вот примеры:

Set<int, 0, 31> a5et0f32;

typedef Set<char, 'A', 'Z'> SetOfUppercase;

Перегруженный конструктор создает либо пустое множество, либо копию существующего множества того же типа.

Множества можно складывать, умножать (объединение и пересечение) и вычитать (пересечение c дополнением). Операции “ и ” соответственно вводят или удаляют элемент из множества. Эти же операции могут использоваться для извлечения и передачи множеств в поток (в виде последовательностей нулей и единиц), если перед sysset.h включается заголовок iostream или директива

#define VCL_IOSTREAM

Множества Set имеют два метода: