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

структуры без ключевого слова struct.

struct dat

{ int day,month,year; }

dat NextDat(dat x) // Формальный параметр - структура

{ ... return(x); } // Возвратить структуру как результат

dat Nextdat1(dat *p)

{ ... return(*p); } // Возврат структуры косвенно по ссылке

dat a,b,c,*q; // Ключевое слово struct не используется

void main()

{

q = &b;

a = b; // Прямое присваивание структур

a = *q; // Косвенное присваивание по ссылке

c = NextDat(b); // Присваивание структуры как результата

c = NextDat1(&b); // функции, фактический параметр в

} // NextDat - копия структуры

2.2. Обращения по адресу (неявная ссылка)

----------------------------------------

При работе со структурами большого размера - при передаче их

в качестве параметров и результатов функций - копирование их является неэффективной операцией. Гораздо эффективнее передавать ссылку на эту структуру. Для того, чтобы постоянно не указывать операции взятия адреса и косвенного обращения по ссылке в Си++ введен тип - неявная ссылка: при определении переменной неявно вводится ссылка, указывающая на эту переменную. Использование этой переменной в большинстве операций предполагает косвенное обращение по соответствующей ссылке. При инициализации такой переменной значением другой переменной создается ссылка на эту другую переменную. При использовании в любом выражении переменной - неявной ссылки реально производится косвенное обращение по созданной ссылке.

Си++ Эквивалент в "классическом" Си

------------------------ -----------------------------//--------------- Инициализация константой -----------------int &a = 5; int a, *pa =a;

*pa = 5;

//--------------- Инициализация переменной -----------------int x; int x,*pa;

int &a = x; pa = &x;

a = 5; *pa = 5;

//-------------- Неявная ссылка на структуру ----------------struct dat struct dat

{ int day,month,year }; { int day,month, year };

dat x; dat x;

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