Непейвода Н.Н. Программирование. Раздел 4

Непейвода Н.Н. Программирование. Страница 413

Таким образом, селекторы полей для записи сужают возможности аб­страктных селекторов: единственный их идентификационный аргумент — это имя поля. Традиционное обозначение для такого селектора —

<имя записи><имя поля>. В C/C++ есть возможность наложения записи (структуры) на произвольную область памяти. Она предоставляется как результат вычисления указателей. В этом случае можно опускать имя записи при задании селектора, а вместо него и последующей точки писать ">". Такой способ может приводить к двусмысленности, когда указатель способен ссылаться на экземпляры раз­личных записей.

Средства оперирования для записей расширяются за счет оператора при­соединенияwith,который позволяет однократно указывать запись, к которой применяются селекторы для извлечения полей:

with<имя записи>do<оператор /* фрагмент */>

В результате имена полей пополняют контекст фрагмента, подчиняясь правилам локализации имен. В частности, имена полей становятся при­оритетными при поиске определяющих вхождений идентификаторов в программе.

Оператор присоединения является средством скорописи для языка, но очень часто он помогает повысить выразительность программ. Для фраг­мента послеdoон задает дополнительный контекст выполнения, причем поименованный (именем записи). Т. е. фрагмент может использовать поля в качестве добавочной системы понятий. Полезность этого качества хорошо понимали разработчики языка Симула67, появившегося, когда записей еще не придумали. Они отразили его в конструкции префикскласса для (опе­рационного) блока, тем самым дали возможность наиболее выразительно представлять в программе средства, описанные при определении объектов. В С++, как и в других языках того же рода, объектная ориентированность строится на базе понятия записи (структуры), но нет присоединений, кото­рые могли бы в манере префиксклассов явно выделять то, что доступно от объекта (в ObjectPascalтакая возможность есть). Мотивируется это тем, что изза возможного перемешивания селектирования и присоединения трудно разбираться с контекстами фрагмента, которые пополняются без явного раз­граничения, какие имена к чему относятся.

Новости

  • 1
  • 2
Prev Next

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

24.01.2016

Ракета &quot;Ангара-А5В&quot; в ближайшее десятилетие не полетит

Роскосмос не планирует в течение ближайшего десятилетия осуществлять пуск тяжёлой ракеты-носителя А...

Ученые РФ опровергли выводы исследований о вреде ГМО

24.01.2016

Ученые РФ опровергли выводы исследований о вреде ГМО

Исследователи из Института проблем передачи информации (ИППИ РАН) проанализировали несколько самых п...

Летающие "Крокодилы"

24.01.2016

Летающие &quot;Крокодилы&quot;

20 удивительных фактов о боевом вертолете Ми-24.Этот вертолет стал таким же узнаваемым символом сове...

В Аргентине описали новый вид динозавра-гиганта

24.01.2016

О ранее неизвестном виде динозавра, относящемуся к инфраотряду зауроподов, рассказали аргентинские п...

Реклама