Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП Экзамен.docx
Скачиваний:
2
Добавлен:
16.09.2019
Размер:
115.82 Кб
Скачать

9. Ссылки и параметры-ссылки. Объявления переменных.

Ссылка – это оператор, который осуществляет доступ к данным некоторых переменных. Т.обр., если передать некий параметр а в функцию, то она сможет его изменять только внутри себя, а за пределами этой функции значение а не изменится. Если же передать в функцию параметр &a, то при изменении a внутри функции будет меняться и значение a вне этой функции. При выводе в поток значения &a будет выведен адрес ячейки памяти, где хранится значение переменной a. С точки зрения реализации ссылка это по сути указатель, который жестко привязан к области памяти, на которую он указывает и который автоматически разыменовывается, когда мы обращаемся по имени ссылки.

Объявление вводит в программу одно или несколько имен. Каждое имя обязательно должно быть объявлено, прежде чем оно будет использовано, т.к. компилятору нужно знать, с чем он имеет дело. В C++ объявление является описанием за исключением следующих случаев:

  1. оно объявляет функцию без спецификации тела;

  2. содержит спецификатор extern при отсутствии инициализатора и тела функции;

  3. является объявлением статического компонента в объявлении класса;

  4. является объявлением имени класса;

  5. является объявлением имени типа typedef.

Описание определяет некоторую сущность, с которой будет оперировать компилятор или программа.

10. Встраиваемые функции. Операции new и delete.

При объявлении функции внутри программы C++ позволяет вам предварить имя функции ключевым словом inline. Если компилятор C++ встречает ключевое слово inline, он помещает в выполнимый файл (машинный язык) операторы этой функции в месте каждого ее вызова. Таким образом, можно улучшить читаемость ваших программ на C++, используя функции, и в то же время увеличить производительность, избегая издержек на вызов функций.

Функции с ключевым словом inline при объявлении называются встраиваемыми.

Время жизни объекта определяется областью действия его имени. В зависимости от расположения оператора определения объекта, он может располагаться в глобальном или локальном сегменте памяти. При определении глобального объекта соответствующие конструкторы объявляются со спецификатором public, поскольку они должны быть доступны фактически до начала выполнения программы. Глобальные объекты существуют в течение всего времени выполнения программы. В контексте выражений размещения и удаления могут быть использованы стандартные операции C++ new и delete, а может быть обеспечен вызов операторных функций operator new и operator delete. Важная роль при этом отводится деструкторам и конструкторам.

В C++ new - оператор, обеспечивающий выделение динамической памяти в куче, delete возвращает память, выделенную оператором new, обратно в кучу.

11. Функции-члены и данные-члены.

Определение класса состоит из двух частей: заголовка, включающего ключевое слово class, за которым следует имя класса, и тела, заключенного в фигурные скобки. Внутри тела объявляются данные-члены и функции-члены и указываются уровни доступа к ним. Таким образом, тело класса определяет список его членов. Каждое определение вводит новый тип данных. Даже если два класса имеют одинаковые списки членов, они все равно считаются разными типами. Тело класса определяет отдельную область видимости. Объявление членов внутри тела помещает их имена в область видимости класса. Данные-члены класса объявляются так же, как переменные. Объявление функций-членов выглядит точно так же, как объявление функции в области видимости пространства имен.