Энциклопедия C++ Builder



ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ И C++ - часть 26


/p>

 

Set (множество) служит для спецификации типа параметров объектных методов VCL

или типа значений, возвращаемых этими методами. C++Builder реализует этот встроенный тип Delphi с помощью одноименного шаблонного класса Set<type, minval, maxval> со следующими параметрами:

type тип элементов множества (обычно, int. char или enum):

minval минимальное (положительное) значение, которое могут принимать элементы множества;

maxval максимальное (не более 255) значение, которое могут принимать элементы множества.

Подстановка разных значений параметров приводит к созданию экземпляров шаблонного класса Set

различных типов, поэтому оператор сравнения if (si == s 2) объектов, описанных как

Set<char, 'A', 'C'> si;

Set<char, 'X', 'Z'> s2;

вызовет ошибку компиляции. Для создания множественных экземпляров типа Set необходимо использовать ключевое слово typedef. Например, объявив typedef Set<char, 'A','Z'> UpperCaseSet; можно создать множества UpperCaseSet si; и UpperCaseSet s2; а затем инициализировать эти объекты:

s1 “ 'А' “ 'В' “ 'С' ;

s2 “ 'X' “ 'Y' “ '?.' ;

AnsiString используется для спецификации типа текстовых строк произвольной длины, имеющих следующую характерную внутреннюю структуру:

счетчик

длина строки

данные

терминатор \0

C++Builder реализует этот встроенный тип

Delphi как одноименный класс. Если при создании экземпляров данного класса не указано начальное значение строки, конструктор AnsiString автоматически присваивает всем переменным нулевые значения. Среди методов данного класса отметим наиболее часто вызываемый метод с str (), который возвращает указатель на символьный массив, оканчивающийся 0 и содержащий копию символов, заключенных в исходном объекте типа AnsiString. Листинг 3.18 иллюстрирует "применение методов чтения и записи значения члена данных FNames свойства Names типа AnsiString в экземпляре MyFamily объявленного компонентного класса Family". Предыдущее предложение кажется полной абракадаброй, если не проникнуться терминологией объектно-ориентированного программирования. Рассматривайте его как своеобразное словесное упражнение по краткому курсу ООП.




Содержание  Назад  Вперед