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

Функции-друзья.

Спецификаторы доступа класса позволяют указывать, могут ли функции вне определенного вами класса обращаться к его элементам. Может, однако, случиться, что вам потребуется обеспечить определенной функции или классу доступ к элементам вашего класса, специфицированным как private или protected. Для обеспечения такой возможности используется ключевое слово friend.

Вы можете разрешить элементам другого класса (anotherClass) полный доступ к элементам вашего класса (myClass), объявленным как private или protected, включив в определение вашего класса описание friend.

К друзьям и дружественности применимы следующие правила:

• на описания friend не влияют спецификаторы public,

protected или private;

• описания friend не взаимны: если А объявляет В другом, то это не означает, что А является другом для В;

• дружественность не наследуется: если А объявляет В другом, классы, производные от В, не будут автоматически получать доступ к элементам А;

• дружественность не является переходным свойством: если А объявляет В другом, классы, производные от А, не будут автоматически признавать дружественность В.

Обычное объявление функции-члена гарантирует три логически разные вещи:

• во-первых, функция имеет право доступа к закрытой части объявления класса;

• во-вторых, функция находится в области видимости класса;

• в-третьих, функция должна вызываться для объекта класса, то есть имеется указатель this,

Явное и неявное преобразование типов.

В C++ различают явное и неявное преобразование типов данных. Неявное преобразование типов данных выполняет компилятор С++, ну а явное преобразование данных выполняет сам программист