C++Builder обеспечивает не только поддержку ANSI C++, но и
расширяет язык новыми возможностями.
Программистам использующим C++Builder для визуальной разработки приложений теперь доступны:компоненты, св-ва, методы, обработка событий и шаблоны, пространство имен, явные и непостоянные объявления, исключения.
1.Объявление св-в:C++Builder использует модификатор _property для идентификации св-в компонентных классов.
_property<тип св-ва><имя св-ва>={<список атрибутов>} где список атрибутов содержит перечисления след. атрибутов в виде:
write=<член данных или метод записи> — определяет способ
присваивания значения члену данных.
read=<член данных или метод чтения> — определяет способ
получения значения члену данных.
default=<булева константа> — разрешает или запрещает сохранение значения св-ва по умолчанию.
stored=<булева константа или функция>
Объявление обработчика событий
C++Builder использует модификатор _closure для объявления функции
обработчика событий.
<тип>(_closure*<name>)(<список параметров>)
Это ключевое слово определяет указатель ф-и name. В отличие от 4-х байтового адреного указателя обычной ф-и (cs:ip), 8-ми
битовый _closure передает еще и скрытый параметр — непостоянный указатель this на экземпляр текущего класса.
Введение 8-ми байтовых указателей делает возможным не только вызывать некоторую ф-ю, но и обращаться к функции в определенном экземпляре этого класса.
Объявление автоматизированных св-в и методов
OLE Automation — это разновидность механизма связи OLE,
позволяющее приложениям для Windows управлять друг другом.
Автоматизированный OLE — контроллер явл. приложением, которое способно автоматизировать другое приложение: автоматизированный
OLE — сервер. По существу OLE Automation явл. протоколом обмена, посредством которого контроллер управляет действиями сервера.
Все компонентные OLE — объекты явл. производными от класса
TAutoobject. При создании автоматизированного сервера необходимо определить его интерфейс с контроллером.
Пример:
class OLE Automation TAutoobject
{
_automated:
void_fastcall_function (void);
};
Правило видимости, определяемое словом _automated не отличается
от правил видимости, объявленных в секции public.Отличие
проявляется в том, что генерируемая компилятором информация о
типах св-в и методов OLE — Automation определяет возможным
создание автоматизированных серверов.
Быстрый вызов ф-й
При объявлении ф-й, параметры которых передаются через регистры
процессора, используется модификатор _fastcall.
<возвращаемый тип>_fastcall_<name>(<список параметров>)
Это ключевое слово определяет, что первые три типизированных параметра ф-и name (слева направо по списку) передаются не через стек, а через AX,BX,CX,DX. Регистры не используются, если значение параметра не вмещается в регистр.