Реферат: Объективное программирование

return(x); г===== b <--------- x ¦

} ¦ --> <----¬ +-¦-+

¦ ¦ L---- ¦ ¦return(x)

¦ ¦ г======+=====void main() a=*..¦ ¦ ¦ ¦ +---+ стек

{ ¦ ¦ --¦-¬ L---- x ¦

dat a,b,*p; ¦ ¦ ¦ =========> ¦

a = *Inc(Inc(&b)); ¦ ¦ L---- +-¦-+

p = Inc(&b); ¦ ¦ ----¬ ¦return(x)

a = *p; ¦ L-- <===========} ¦ L--- ¦ ----¬

L====> a ¦

L---

Пример 3. Параметры - неявные ссылки

---------------------------------------------------------dat& Inc(dat& x) x.day++ неявная ссылка dat* px

{ x.day++

x.day++; ----¬ стек +---+

return(x); г===== b <--------- px¦

} ¦ --> <----¬ +-¦-+

¦ ¦ L---- ¦ ¦return(px)

¦ ¦ г======+=====void main() a=*..¦ ¦ ¦ ¦ +---+ стек

{ ¦ ¦ --¦-¬ L---- px¦

dat a,b,*p; ¦ ¦ ¦ =========> ¦

a = Inc(Inc(b)); ¦ ¦ L---- +-¦-+

p = &Inc(b); ¦ ¦ ----¬ ¦return(px)

a = *p; ¦ L-- <===========} ¦ L--- ¦ ----¬

L====> a ¦

L---

Сравнение этих примеров показывает следующее:

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

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

К-во Просмотров: 540
Бесплатно скачать Реферат: Объективное программирование