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

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

Следует специально остановиться на операторе присваивания значений. С концептуальной точки зрения этот оператор есть специальным образом синтаксически оформленная процедура с двумя параметрами: тпараметр — источник значения и ои^параметр — получатель значения (по своей сути это та же процедура Сору, рассмотренная выше). Поэтому правила соответствия типов в данной ситуации применяются в полной мере, и нет нужды чтолибо специально доопределять на этот счет. Иное дело, что в языках часто опреде­ляются не средства, обеспечивающие назначение параметров, а механизмы параметризации, и если эти механизмы базируются на присваивании (как в C/C++), то поневоле приходится сначала говорить о приведениях в выра­жениях и присваиваниях, а затем переносить выработанные соглашения на параметризацию.

Ориентация Pascalна максимально полную, какую можно было реа­лизовать в начале 70х гг. XX вв., проверку программы до ее исполнения предопределила в языке такие правила согласования типов, которые допус­кают вычисление всей информации о типах объектов программы в процессе трансляции. В соответствии с этими правилами в Pascalтребуется, что­бы при подстановке каждого фактического параметра его тип совпадал или был бы эквивалентен типу соответствующего формального параметра (т. е. определен при своем описании как равный типу формального параметра). В частности, с этой целью язык Pascalтребует, чтобы в описании формаль­ного параметра его тип был бы указан своим именем. Приведения типов почти всегда явные (есть единичные исключения из этого правила, напри­мер преобразование целого к вещественному).

8.5.2. Полиморфизм и вызовы с переменным числом параметров

В языках С/С++/С# и Javaжизненно важной, в частности, для объект­ноориентированного программирования является возможность иметь мно­го процедур с одним и тем же именем, но разным обращением. Нужный вариант процедуры выбирается по контексту вызова. Это называется поли­морфизмом процедур. В последние версии языка ObjectPascalпроникли некоторые элементы полиморфизма, хотя там они не являются столь жиз­ненно важными и введены, скорее, для согласования с вышеупомянутыми языками.

Новости

  • 1
  • 2
Prev Next

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

Реклама