Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

П_1_4_Указатели_friend

.pdf
Скачиваний:
10
Добавлен:
03.06.2015
Размер:
136.56 Кб
Скачать

Лекция №4

Адреса и указатели

Динамические массивы

Friend-функции

Переменная

Переменная – это определенное место в памяти, имеющее имя, по которому мы его используем.

Переменные устроены таким образом, что мы можем работать с ними по их имени, не задумываясь, где на самом деле в памяти и как они хранятся.

Однако C++ позволяет также работать с переменными косвенно.

Память

Память – это нумерованная последовательность числовых двоичных байтов.

Переменные в памяти

Адрес переменной

Адрес переменной – это номер первого байта, занимаемого этой переменной в памяти.

Для каждой переменной можно узнать ее адрес, с помощью операции &.

Адрес – это, грубо говоря, номер, то есть число.

int a = 5; int b = 6;

if (&b - &a > 10){} /* переменные далеко друг от друга */

if (&a + sizeof(a) == &b){} /* перем. b идет в памяти сразу за a */

Указатели

Указатель – это переменная, значением которой является адрес.

int a = 5; /* объявляем перем. a типа int и присв. ей значение 5*/

int *ptr; /* объявляем ptr как перем.-указатель на перем. типа int*/

Указатели

int *ptr = &a; int *ptr2 = &a; int *ptr3 = ptr;

Динамические массивы

Динамическим называется массив, размер которого может

меняться во время исполнения программы.

Объявление одномерного динамического массива:

тип *имя; /* - указатель на область в памяти, выделяемую для нашего массива */

Например: int *Arr;

Инициализация массива

Инициализация динамического массива происходит при помощи операции new.

Например: int *Arr;

int count = 10;

Arr = new int[count];

Friend-функции

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

В С++ и существует возможность описания функции, функциичлена другого класса как дружественной (friend).

Класс может предоставлять особые привилегии определенным внешним функциям или функциям-членам другого класса, как если бы они были функциями-членами данного класса.

Объявление friend-функции

int getcount(){ int c;

cout << "Input number - "; cin >> c;

 

return c;

class clArrSort{

 

public:

}

 

 

clArrSort();

 

 

 

 

clArrSort(int c);

 

 

int Count;

 

 

int *Arr;

 

 

friend int getcount();

 

 

};

 

 

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]