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

Инициализация и де‐инициализация • Для инициализации объекта класса используется специальная функция «конструктор класса» • Для де‐инициализации класса используется специальная функция «деструктор класса»

Конструктор класса • Функция - конструктор класса вызывается автоматически в момент создания экземпляра класса (объекта). • Конструктор является хорошим местом для инициализации объекта. • Имя функции конструктора должно совпадать с именем класса. • Функция‐конструктор ничего не возвращает (даже void).

Деструктор класса • Функция ‐ деструктор класса вызывается автоматически в момент перед разрушением экземпляра класса (объекта). • Деструктор является хорошим местом для освобождения выделенных ресурсов (например, выделенной памяти). • Имя функции деструктора должно начинаться с символа  «тильда» ~, а в остальном совпадать с именем класса. • Функция‐деструктор ничего не возвращает (даже void).

Пример конструктора и его перегрузки:

classbooks

{

public:

int nomer;

string name;

string author;

int page;

int cost;

books* next;

books()

{

nomer = 0;

name = "";

author = "";

page = 0;

cost = 0;

};

books(string name1, string author1, int page1, int cost1)

{

name = name1;

author = author1;

page = page1;

cost = cost1;

};

~books() {};

};

Пример деструктора:

class list

{

private:

books* start;

books* current;

books* tmp;

public:

list();

~list();

};

list::list()

{

start = NULL;

current = NULL;

tmp = NULL;

}

list::~list()

{

if (start != NULL)

{

while (start != NULL)

{

tmp = start->next;

delete start;

start = tmp;

}

}

if (tmp != NULL)

deletetmp;

}

  1. Основы ооп. Решение задачи создания списочной структуры средствами ооп (задача о списке студентов).

class Student

{

public:

Student() // Конструктор

{

_id = 0;

_name = _T("");

_avgMark = 0;

}

~Student() {} // Деструктор

voidSetId(int n) // Записать "Номер"

{

if (n > 0)

_id = n;

}

intGetId() // Прочитать "Номер"

{

return _id;

}

voidSetName(string name) //ЗаписатьИмя

{

_name = name;

}

stringGetName() //ПрочитатьИмя

{

return _name;

}

voidSetMark(float n) // Записатьоценку

{

if (n > 0)

_avgMark = n;

}

floatGetMark() // Прочитатьоценку

{

return _avgMark;

}

void Print()

{

cout<< _id <<". "<< _name;

cout<<" ("<< _avgMark<<")"<<endl;

}

private:

int _id; //Номер

string _name; //Имя

float _avgMark; //Оценка

};

int _tmain(int argc, _TCHAR* argv[])

{

Student s1;

cout<<"Созданные элементы:\n";

s1.Print();

s1.SetId(1);

s1.SetName("Иван Петров");

s1.SetMark(75);

cout<<"\n\nЗаполненные элементы:\n";

s1.Print();

return 0;

}

  1. Библиотека mfc. Отличия создания программы под Windows с графическим интерфейсом от консольного приложения. Понятия окна и сообщения.

Консольное приложение • Главная функция ‐ main(). • Программа выполняется последовательно, при необходимости запрашивая у пользователя данные, например, используя функции getchar() или scanf().

Приложение Windows • Главная функция WinMain() • Программа получает сообщения от операционной системы и реагирует на эти сообщения.

Окна: • Все визуальные элементы в ОС «Windows» реализуются с помощью окон. • Окна могут быть вложены друг в друга. • Каждое окно имеет свой идентификатор (хэндл) тип HWND. • Зная идентификатор окна, к нему можно обращаться и производить с ним действия.

Сообщения Windows: • Сообщения – это средство общения окон между собой и операционной системы с окнами. • Сообщения – механизм уведомления окон о произошедших событиях. • Каждое сообщение состоит из целочисленного уникального кода и двух вспомогательных параметров (целых чисел), предназначенных для передачи доп. информации.

МFC – Microsoft Foundation Classes • Библиотека является надстройкой над  Windows API; • Библиотека не запрещает использование  функций WinAPI. • Функция WinMain() скрыта от программиста  «внутри» MFC.

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