Background Image
Previous Page  10 / 22 Next Page
Information
Show Menu
Previous Page 10 / 22 Next Page
Page Background

вызывающей функции. Так, в контексте вызываемого метода класса

регион памяти, связанный с указателем

this

, будет адресоваться бе-

зотносительно какого-либо объекта, а в контексте вызывающей функ-

ции — будет регионом с находящимся внутри объектом, метод которого

вызывается. Аналогично, аргумент функции, фигурирующий в ней как

самостоятельная переменная (и, соответственно, как самостоятельный

регион памяти), может быть подрегионом в контексте вызывающей

функции — полем структуры, элементом массива. С регионом памяти

в контексте вызываемой функции может быть связан не символ, отно-

сящийся к региону памяти, а константа, символьное выражение или

иное значение, не имеющее в своей основе регион аргумента. Все это

означает, что для корректного применения резюме необходимо про-

водить актуализацию символьных значений: их перевод из контекста

имен и значений вызываемой функции в контекст имен и значений

вызывающей функции.

В соответствии с типами символьных значений можно выполнять

актуализацию символьных значений в зависимости от их типа.

Константные значения не изменяются при их актуализации, по-

скольку они не содержат элементов, зависящих от контекста. Вместе с

тем, типы константного значения в контексте вызываемой функции и в

контексте вызывающей функции могут быть различающимися, поэто-

му может понадобиться осуществление дополнительного приведения

типов для константы.

Символьные значения, относящиеся к регионам памяти, можно ак-

туализировать, используя следующие правила для различных катего-

рий регионов памяти.

Регионы, относящиеся к пространству аргументов вызываемой

функции.

Можно выделить два различных случая передачи в зависи-

мости от того, является ли передаваемый тип ссылочным или типом

указателя, либо не является. Если аргумент передается по ссылке, то

левостороннее значение фактического аргумента становится левосто-

ронним значением формального параметра, а правостороннее значе-

ние фактического параметра — правосторонним значением формаль-

ного параметра. Это означает, что значение объекта в результате вы-

полнения функции может отличаться от значения на момент вызова,

так как в результате передачи по ссылке с фактическим аргументом

может быть связано другое значение.

Если аргумент передается по указателю, то правостороннее зна-

чение фактического параметра становится правосторонним значением

формального параметра. Для левосторонних значений это утвержде-

ние неверно: выполнение присваивания формальному аргументу вну-

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

если указываемый тип не является константным, то в результате вызо-

84 ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2015. № 5