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

1В. Атрибуты private, public, protected

private - Модификатор доступа, обозначает, что программист будет использовать соответствующие элементы только внутри своего собственного класса

public – Модификатор доступа, который обозначает, что программист будет использовать соответствующие элементы либо в других частях программы, либо в других классах.

protected – Модификатор доступа, который определяет, что программист собирается применить наследование. В наследуемых классах он собирается унаследовать такие элементы, которые должны срабатывать как элементы private, но в отличии от private они расплодятся по всем наследникам и каждый такой элемент будет соответствовать только своему классу.

2В. Виртуальные методы и полиморфизм

Виртуальные методы к механизму виртуальных функций обращаются в тех случаях, когда в класс необходимо поместить функцию, которая выполняется в наследуемых классах иначе, чем в классе базовом. Виртуальные функции необходимы потому, что используются для поддержки динамического полиморфизма. Это свойство ООП поддерживается двумя способами: — на этапе компиляции, посредством перегрузки функций, и — во время выполнения программы, посредством виртуальных функций. Виртуальные функции реализуют тезис: “один интерфейс — множество методов“. Классы, содержащие одну или несколько виртуальных функций, называются полиморфными.

Полиморфизм представляет собой способность объекта изменять форму во время выполнения программы. Он основывается на возможности включения в данные объекта также и информации о методах их обработки (в виде указателей на функции).

Полиморфизм реализуется с помощью наследования классов и виртуальных функций.

Практический смысл полиморфизма заключается в том, что он позволяет посылать общее сообщение о сборе данных любому классу, причем и родительский класс, и классы-потомки ответят на сообщение соответствующим образом, поскольку производные классы содержат дополнительную информацию.

3в. Вывод готового графического изображения из файла на форму.

Для вставки графического изображения необходимо добавить на форму компонент Image из палитры компонентов Additional. Вызвать окно редактирования рисунка Picture Editor. С помощью кнопки Load вызвать окно загрузки файла и выбрать картинку из любого файла.

4в. Вывод пользователю сообщения

Используется оператор cout. пример:

#include <iostream.h>

void main(void)

{

cout << "Вывод сообщения";

}

В итоге после компиляции , когда мы запустим программу, на нашем экране появится надпись Вывод сообщения. Текст после cout << обязательно заключать в кавычки, иначе компиляция выдаст ошибку.

5в. Вызов одной формы из другой.

Добавляем в проект форму Form2

В обработчике события нажатия кнопки пишем

Form2 f2=gcnew Form2();

f2->Show();

6в. Друзья-функции и друзья-классы

C++ позволяет друзьям определенного класса обращаться к частным элементам этого класса. Чтобы указать C++, что один класс является другом (friend) другого класса, вы просто помещаете ключевое слово friend и имя соответствующего класса-друга внутрь определения этого другого класса. Например, приведенный ниже класс book объявляет класс librarian своим другом. Поэтому объекты класса librarian могут напрямую обращаться к частным элементам класса book, используя оператор точку:

class book

{

public:

book (char *, char *, char *);

void show_book(void);

friend librarian;

private:

char title [64] ;

char author[64];

char catalog[64];

};

Чтобы объявить функцию как друга (friend) класса, перед ее прототипом в описании класса ставится ключевое слово friend. Чтобы объявить класс ClassTwo как друга класса ClassOne, запишите объявление в форме

friend ClassTwo

в определение класса ClassOne.

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

Дружественные данному классу функции не являются членами этого класса.

Дружественная функция может быть функцией-членом другого ранее объявленного класса.

Дружественные отношения не наследуются. Дружественные функции не имеют доступа к членам производного класса.