Содержание
- 2. Объектно-ориентированный подход в программировании Объектная декомпозиция задачи Объект имеет: имя набор свойств состояние модель поведения Объекты
- 3. Понятия объектно-ориентированного программирования (ООП) Объект (object) Класс (class) Свойство (property) не изменяющиеся в течение времени изменяющиеся
- 4. Принципы ООП Инкапсуляция Полиморфизм Наследование
- 5. Инкапсуляция Свойства Методы Другие объекты
- 6. Класс в C++ Объявление класса class MyClass { public: // доступно всем private: // доступно только
- 7. Объявление класса class Person { public: Person(); std::string GetName(); void SetName(std::string val); int GetYear(); void SetYear(int
- 8. Реализация функций-членов класса Person::Person() { //Конструктор по умолчанию } void Person::SetName(std::string Nval) { Name = Nval;
- 9. Реализация функций-членов класса (2) std::string Person::GetName() { return Name; } int Person::GetYear() { return Year; }
- 10. Программа с использованием объекта int main(int argc, char** argv) { Person P; // Вызов конструктора по
- 11. Конструирование класса, моделирующего работу устройства Переменные, определяющие состояние устройства: наличие электропитания (да,нет) наличие бумаги (да, нет)
- 12. Таблица состояний принтера
- 13. Объявление класса Printer (Printer.h) class Printer { public: Printer(); virtual ~Printer(); void on_off(); void set_print(); void
- 14. Реализация методов класса Printer (1) (Printer.cpp) #include "Printer.h" #include using namespace std; Printer::Printer(): is_on(0), is_print(0), has_paper(0)
- 15. Реализация методов класса Printer (2) void Printer::on_off() { is_on = !is_on; is_print = 0; } void
- 16. Реализация методов класса Printer (3) void Printer::paper_out() { has_paper=0; is_print=0; } void Printer::put_paper() { has_paper=1; }
- 17. Главная функция (main.cpp) #include #include "Printer.h" using namespace std; int main() { Printer Pr; int command,
- 18. Главная функция (продолжение) while (end) { cout ' ; cin >> command; switch (command) { case
- 19. Диаграмма файлов (компонентов) проекта
- 20. Перегрузка функций Пример – стандартная математическая функция возведения в степень pow() long double pow(long double,int); long
- 21. Перегрузка методов класса Пример – класс «Графический редактор» Объявление класса class Draw { char* message; public:
- 22. Пример – класс «Графический редактор» Реализация методов (1) Draw::Draw () { message = new char [10];
- 23. Пример – класс «Графический редактор» Реализация методов (2) void Draw::Paint () { std::cout } void Draw::Paint
- 24. Пример – класс «Графический редактор» Функция main () int main () { Draw draw; draw.Paint ();
- 25. Виды конструкторов Конструктор по умолчанию Конструктор с параметрами Копирующий конструктор class Person { char* Name; int
- 26. Конструктор по умолчанию Реализация Person::Person () { } или Person::Person () { Name = new char[7];
- 27. Конструктор с параметрами Реализация Person::Person (char* N, int Y) { Name = new char[strlen(N)+1]; strcpy (Name,
- 28. Конструктор с параметрами по умолчанию Реализация конструктора Person::Person ( char* N=“Noname”, int Y=0) { Name =
- 29. Конструктор со списком инициализации Реализация конструктора Person::Person ( char* N, int Y): Name(new char[strlen(N)+1]),Year(Y) { //Если
- 30. Копирующий конструктор Реализация Person::Person (const Person& P) { Name = new char[strlen(P.Name)+1]; strcpy (Name, P.Name); Year
- 32. Скачать презентацию