Исходники
Статьи
Языки программирования
.NET Delphi Visual C++ Borland C++ Builder C/С++ и C# Базы Данных MySQL MSSQL Oracle PostgreSQL Interbase VisualFoxPro Веб-Мастеру PHP HTML Perl Java JavaScript Протоколы AJAX Технология Ajax Освоение Ajax Сети Беспроводные сети Локальные сети Сети хранения данных TCP/IP xDSL ATM Операционные системы Windows Linux Wap Книги и учебники
Скрипты
Магазин программиста
|
Ishodniki.Ru » Online книги » C++ Builder по шагам Шаг 77 - Расширения стандарта ANSI C++ - Операторы В этом шаге я рассмотрю оставшиеся расширения, наиболее часто используемые при написании приложений. __classidВ основном этот оператор используется для внутренней регистрации компонентов, редакторов свойств, классов, и т.д. Например, при написании своего компонента при регистрации класса придется воспользоваться этим оператором: namespace Folderdialog { void __fastcall PACKAGE Register() { TComponentClass classes[1] = {__classid(TFolderDialog)}; RegisterComponents("Seavan", classes, 0); PTypeInfo ti=*GetPropInfo(__typeinfo(TFolderDialog),"Root")->PropType; RegisterPropertyEditor(ti,__classid(TFolderDialog), "Root",__classid(TFolderPropertyEditor)); } } __closureСпециальный оператор для определения типа обработчика события. Вообще, обработчик события представляет собой указатель на функцию. Обычно этот указатель имеет четырехбайтный размер (адрес типа FFFF:FFFF, сегмент:смещение). При определении такого типа указателя функции передается еще и указатель this на экземпляр класса. Поэтому указатель имеет восьмибайтовый размер. Это дает возможность определять внешние, не включенные в описание класса обработчики, имеющие доступ к членам класса. typedef <тип возвращаемого значения> ( __closure *<имя типа обработчика> )(<список параметров>); <имя типа обработчика> <имя обработчика>; typedef void ( __closure *TMyClosure )(TObject*); TMyClosure OnEvent; __fastcallЭто ключевое слово используется в описании фукнций, и дает указание компилятору использовать для передачи параметров возможные регистры процессора, что делает вызов функции наиболее быстрым. IDE автоматически устанавливает это свойство у всех обработчиков событий. <возвращаемое значение> <другие модификаторы> __fastcall FunctionName(parameter [, parameter]); __fastcall TForm1::TForm1(TComponent* Owner): TForm(Owner); __automatedВ чем-то схоже с расширением __published. Дает возможность определять в классе секцию, по правам доступа аналогичную public, но с предоставлением информации, необходимой для работы OLE серверов. class TOleServer1 : public TOleServer { // ... __automated: <определения> } |
Форум Программиста
Новости Обзоры Магазин Программиста Каталог ссылок Поиск Добавить файл Обратная связь Рейтинги
|