П_1_4_Указатели_friend
.pdfЛекция №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(); |
|
|
}; |
|
|
|