Атрибуты и свойства
Атрибуты и свойства
Иногда бывает полезно показать, что объект имеет некие открытые свойства, которые могут быть доступны и/или которые можно модифицировать через СОМ-интерфейс. СОМ IDL позволяет аннотировать методы интерфейса с тем, чтобы данный метод либо модифицировал, либо читал именованный атрибут объекта. Рассмотрим такое определение интерфейса:
[ object, uuid(0BB3DAE1-11F4-11d1-8C84-0080C73925BA) ]
interface ICollie : IDog
{
// Age is a read-only property
// Age (возраст) – это свойство только для чтения
[propget] HRESULT Age([out, retval] long *pVal);
// HairCount is a read/write property
// HairCount (счетчик волос) – свойство для чтения/записи
[propget] HRESULT HairCount([out, retval] long *pVal);
[propput] HRESULT HairCount([in] long val);
// CurrentThought is a write-only property
// CurrentThought (текущая мысль) – свойство только для записи
[propput] HRESULT CurrentThought([in] BSTR val);
}
Использование атрибутов [propget] и [propput] информирует компилятор IDL, что методы, которые ему соответствуют, должны быть отображены в преобразователи свойств (property mutators) или в аксессоры на языках, явно поддерживающих свойства. Применительно к Visual Basic это означает, что элементами Age, HairCount и CurrentThought можно манипулировать, используя тот же синтаксис, как при обращении к элементам структуры:
Sub UseCollie(fido as ICollie)
fido.HairCount = fido.HairCount – (fido.Age * 1000)
fido.CurrentThought = «I wish I had a bone»
End Sub
С++-отображение этого интерфейса просто прибавляет к именам методов конструкции put или get, чтобы подсказать программисту, что обращение относится к свойству:
void UseCollie(ICollie *pFido)
{
long n1, n2;
HRESULT hr = pFido->getHairCount(&n1);
assert(SUCCEEDED(hr));
hr = pFido->getAge(&n2);
assert(SUCCEEDED(hr));
hr = pFido->putHairCount(n1 – (n2 * 1000)): assert(SUCCEEDED(hr));
BSTR bstr = SysAllocString(OLESTR(«I wish I had a bone»));
hr = pFido->putCurrentThought(bstr);
assert(SUCCEEDED(hr));
SysFreeString(bstr);
}
Хотя свойства напрямую не обеспечивают развития, они полезны для выполнения точных преобразований на те языки, которые их поддерживают[1].
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
5.2.4. Атрибуты
5.2.4. Атрибуты Расширенное ключевое слово attribute используется для передачи gcc большего объема информации о функции, переменной или объявленном типе, чем это позволяет код С, соответствующий стандарту ANSI/ISO. Например, атрибут aligned дает указание gcc о том, как именно выравнивать
Атрибуты класса
Атрибуты класса Во второй сверху секции прямоугольника класса записываются его атрибуты (attributes) или свойства. В языке UML принята определенная стандартизация записи атрибутов класса, которая подчиняется некоторым синтаксическим правилам. Каждому атрибуту класса
Атрибуты писем.
Атрибуты писем. Помимо указанных выше полей, заполняемых вручную или автоматически, используется также поле атрибутов письма. Hетмайл-письмо может иметь следующие атрибуты :Hазвание Сокращение ЗначениеPrivate Pvt Частное письмо. Если Вы пишете пользователю BBS, получающему
Атрибуты процесса
Атрибуты процесса Процесс в UNIX имеет несколько атрибутов, позволяющих операционной системе эффективно управлять его работой, важнейшие из которых рассмотрены
1.3.5. Методы и атрибуты
1.3.5. Методы и атрибуты Как мы уже видели, методы обычно используются в сочетании с простыми экземплярами классов и переменными, причем вызывающий объект отделяется от имени метода точкой (receiver.method). Если имя метода является знаком препинания, то точка опускается. У методов
Свойства, доступные только для чтения, и свойства, доступные только для записи
Свойства, доступные только для чтения, и свойства, доступные только для записи При создании типов класса можно создавать свойства, доступные только для чтения. Для этого просто создайте свойство без соответствующего блока set. Точно так же, если вы хотите иметь свойство,
Атрибуты блока
Атрибуты блока Атрибут блока представляет собой некое подобие метки или ярлыка, используемых для связывания с блоком текстовой строки или каких-либо иных данных. В процессе вставки блока с переменными атрибутами AutoCAD предлагает ввести значение атрибута, которое затем
2.2.2. Сущности м атрибуты
2.2.2. Сущности м атрибуты Основные компоненты диаграммы Erwin - это сущности, атрибуты и связи. Каждая сущность является множеством подобных индивидуальных объектов, называемых экземплярами. Каждый экземпляр индивидуален и должен отличаться от всех остальных экземпляров.
2.4.1. Расширенные атрибуты
2.4.1. Расширенные атрибуты ERwin поддерживает не только проектирование сервера БД, но и автоматическую генерацию клиентского приложения в средах разработки MS Visual Basic и Power Builder. Технология генерации состоит в том, что на этапе разработки физической модели данных каждой
1.1.8 Атрибуты окна
1.1.8 Атрибуты окна Многие атрибуты окна задаются при его создании с помощью процедуры XCreateWindow() или XCreateSimpleWindow(). Впоследствии параметры можно изменить, обратившись к процедуре XChangeWindowAttributes().Характеристики окна описываются структурами типа TXSetWindowAttributes и TXWindowAttributes.
Атрибуты
Атрибуты Сведения об атрибутах XSLT представлены в табл. П2.2.Таблица П2.2. Атрибуты XSLT Атрибут Назначение xsl:version Указывает версию языка в случае использования упрощенного синтаксиса записи преобразований xsl:exclude-result-prefixes Перечисляет префиксы пространств имен, которые
7.5. Атрибуты файлов
7.5. Атрибуты файлов Для каждого файла можно установить четыре атрибута (рис. 49):Только чтение — файл нельзя изменить, пока данный атрибут не сброшен.Скрытый — файл не будет отображаться при выводе содержимого каталога, пока не будет включен режим отображения скрытых
4.2.5. Свойства и атрибуты файла
4.2.5. Свойства и атрибуты файла Щелкните на файле и выберите команду Свойства. Появится окно свойств файла (рис. 4.16). На вкладке Общие выводится общая информация о файле: имя файла, приложение, используемое для открытия файла, размер файла, расположение файла, даты
Атрибуты и подпрограммы
Атрибуты и подпрограммы Любой абстрактный тип данных и POINT в частности характеризуется набором функций, описывающих операции применимые к экземплярам АТД. В классе, реализующем АТД, функции становятся компонентами (features) - операциями, применимыми к экземплярам класса.В
Атрибуты или функции?
Атрибуты или функции? Рассмотрим подробнее следствия принципа унифицированного доступа и объединения атрибутов и подпрограмм под общим заголовком - компоненты. (См."Унифицированный доступ", лекция 3. См. также данную лекцию.)Принцип декларирует, что клиенты модуля
У18.4 Однократные атрибуты?
У18.4 Однократные атрибуты? Исследуйте полезность понятия "однократного атрибута", полученного по образцу однократной функции? Будет ли такой атрибут общим для всех экземпляров класса? Как инициализировать однократные атрибуты? Являются ли они избыточными при наличии