C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 77 - Расширения стандарта ANSI C++ - Операторы / С++ Builder 5 / Borland C++

Шаг 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:
	<определения>
}

| |
Автор Аванесов Самвел.
[AD]