Содержание
- 2. Конструктор и деструктор При создании объектов одной из наиболее широко используемых операций является инициализация элементов данных
- 3. Основные концепции: Конструктор представляет собой метод класса, который облегчает создаваемым программам инициализацию элементов данных класса. Конструктор
- 4. Основные концепции: Многие объекты могут распределять память для хранения информации; когда уничтожается такой объект, C++ будет
- 5. Создание простого конструктора Добавим в класс Students конструктор, который будет принимать имя и фамилию ученика, и
- 6. Создание простого конструктора // Конструктор Students Students::Students(std::string name, std::string last_name) { Students::set_name(name); Students::set_last_name(last_name); }
- 7. Создание простого конструктора При создании нового объекта, мы должны передать конструктору имя и фамилию студента. Иначе
- 8. Создание простого конструктора Теперь добавим прототип конструктора в файл students.h. /* students.h */ #pragma once /*
- 9. Создание простого конструктора class Students { public: // Конструктор класса Students Students(std::string, std::string); // Установка имени
- 10. Создание простого конструктора // Установка фамилии студента void set_last_name(std::string); // Получение фамилии студента std::string get_last_name(); //
- 11. Создание простого конструктора // Установка среднего балла void set_average_ball(float); // Получение среднего балла float get_average_ball(); private:
- 12. Создание простого конструктора // Средний балл float average_ball; // Имя std::string name; // Фамилия std::string last_name;
- 13. Создание простого конструктора В файле students.cpp определим сам конструктор. /* students.cpp */ #include #include #include "students.h"
- 14. Создание простого конструктора / Конструктор Students Students::Students(std::string name, std::string last_name) { Students::set_name(name); Students::set_last_name(last_name); }
- 15. Создание простого конструктора // Установка имени студента void Students::set_name(std::string student_name) { Students::name = student_name; }
- 16. Создание простого конструктора // Получение имени студента std::string Students::get_name() { return Students::name; }
- 17. Создание простого конструктора // Установка фамилии студента void Students::set_last_name(std::string student_last_name) { Students::last_name = student_last_name; }
- 18. Создание простого конструктора // Получение фамилии студента std::string Students::get_last_name() { return Students::last_name; }
- 19. Создание простого конструктора // Установка промежуточных оценок void Students::set_scores(int scores[]) { int sum = 0; for
- 20. Создание простого конструктора // Установка среднего балла void Students::set_average_ball(float ball) { Students::average_ball = ball; }
- 21. Создание простого конструктора // Получение среднего балла float Students::get_average_ball() { return Students::average_ball; }
- 22. Создание простого конструктора В main() мы принимаем от пользователя имя и фамилию ученика, и сохраняем их
- 23. Создание простого конструктора /* main.cpp */ #include #include "students.h“ int main(int argc, char *argv[]) { //
- 24. Создание простого конструктора // Ввод имени std::cout getline(std::cin, name); // И фамилии std::cout getline(std::cin, last_name);
- 25. Создание простого конструктора // Передача параметров конструктору Students *student = new Students(name, last_name); // Оценки int
- 26. Создание простого конструктора // Ввод промежуточных оценок for (int i = 0; i std::cout std::cin >>
- 27. Создание простого конструктора // Сохраняем промежуточные оценки в объект класса Student student->set_scores(scores); // Считаем средний балл
- 28. Создание простого конструктора // Выводим данные по студенту std::cout get_name() get_last_name() get_average_ball() // Удаление объекта student
- 29. Сохранение оценок в файл Чтобы после завершения работы с программой, все данные сохранялись, необходимо записывать их
- 30. Сохранение оценок в файл Для работы с файлами воспользуемся библиотекой fstream, которая подключается в заголовочном файле
- 31. Сохранение оценок в файл fout for (int i = 0; i fout } fout fout.close(); }
- 32. Сохранение оценок в файл Переменная fout — это объект класса ofstream, который находится внутри библиотеки fstream.
- 33. Сохранение оценок в файл В данном случае, мы используем режим добавления — std::ios:app (append). После завершения
- 34. Сохранение оценок в файл тобы сохранить оценки студента, мы будем вызывать только что созданный метод save().
- 35. Деструктор Логично было бы сохранять все оценки после того, как работа со студентом закончена. Для этого
- 36. Деструктор Добавим прототипы деструктора и метода save() в students.h. /* students.h */ #pragma once /* Защита
- 37. Деструктор class Students { public: // Запись данных о студенте в файл void save(); // Деструктор
- 38. Деструктор // Конструктор класса Students Students(std::string, std::string); // Установка имени студента void set_name(std::string); // Получение имени
- 39. Деструктор // Установка фамилии студента void set_last_name(std::string); // Получение фамилии студента std::string get_last_name();
- 40. Деструктор // Установка промежуточных оценок void set_scores(int []); // Получение массива с промежуточными оценками int *get_scores();
- 41. Деструктор // Установка среднего балла void set_average_ball(float); // Получение среднего балла float get_average_ball(); private: // Промежуточные
- 42. Деструктор // Средний балл float average_ball; // Имя std::string name; // Фамилия std::string last_name; };
- 43. Деструктор И определим эти функции в students.cpp. /* students.cpp */ #include #include #include "students.h"
- 44. Деструктор // Деструктор Students Students::~Students() { Students::save(); }
- 45. Деструктор // Запись данных о студенте в файл void Students::save() { std::ofstream fout("students.txt", std::ios::app); fout for
- 46. Деструктор // Конструктор Students Students::Students(std::string name, std::string last_name) { Students::set_name(name); Students::set_last_name(last_name); }
- 47. Деструктор // Установка имени студента void Students::set_name(std::string student_name) { Students::name = student_name; }
- 48. Деструктор // Получение имени студента std::string Students::get_name() { return Students::name; }
- 49. Деструктор // Установка фамилии студента void Students::set_last_name(std::string student_last_name) { Students::last_name = student_last_name; }
- 50. Деструктор // Получение фамилии студента std::string Students::get_last_name() { return Students::last_name; }
- 51. Деструктор // Установка промежуточных оценок void Students::set_scores(int scores[]) { int sum = 0; for (int i
- 52. Деструктор // Получение массива с промежуточными оценками int *Students::get_scores() { return Students::scores; }
- 53. Деструктор // Установка среднего балла void Students::set_average_ball(float ball) { Students::average_ball = ball; }
- 54. Деструктор / Получение среднего балла float Students::get_average_ball() { return Students::average_ball; }
- 91. Скачать презентацию