Содержание
- 2. Класс – это дальнейшее развитие понятия структуры. Он позволяет создавать новые типы и определять функции, манипулирующие
- 3. Объединение данных с функциями их обработки в сочетании со скрытием ненужной для использования этих данных информации
- 4. Рассмотрим реализацию понятия даты с использованием структуры для того, чтобы определить представление даты date и множества
- 5. Класс является типом данных, определяемым пользователем. В классе задаются свойства и поведение какого-либо предмета или процесса
- 6. Поля класса могут быть простыми переменными любого типа, указателями, массивами и ссылками (т.е. могут иметь практически
- 7. class monster { int health, ammo; public: monster(int he = 100, int am = 10) {
- 8. Методы класса имеют неограниченный непосредственный доступ к его полям. Внутри метода можно объявлять объекты, указатели и
- 9. В каждом классе есть метод, имя которого совпадает с именем класса. Он называется конструктором и вызывается
- 10. Описание объектов Конкретные переменные типа данных "класс" называются экземплярами класса, или объектами. monster Vasia; // Объект
- 11. При создании каждого объекта выделяется память, достаточная для хранения всех его полей, и автоматически вызывается конструктор,
- 12. Доступ к открытым ( public ) элементам объекта аналогичен доступу к полям структуры. Для этого используются
- 13. Наследование – возможность порождать новые классы на базе уже имеющихся с передачей порожденным классам наследства в
- 14. Базовый и производный классы Принято называть родительский класс базовым, а вновь созданный класс – производным. Механизм
- 15. Простое наследование class D: [virtual][public|private|protected] B { тело производного класса }; Чаще всего производный класс конструируют
- 17. #include #include class B { int x; public: B(){x=0; cout B(int n){x=n; cout B(const B &y){x=y.x;
- 18. class D : public B { int y; public: D(){y=0; cout D(int n){y=n; cout D(const D
- 19. void main() { B w1; cout B w2(2); cout B w3(w2); cout B w4=w1; cout D
- 20. Динамическое создание и удаление объектов class A {...}; //объявление класса .............. A *ps=new A; //объявление указателя
- 21. Создание одиночных объектов может быть совмещено с инициализацией объекта, если в классе предусмотрен соответствующий конструктор: A
- 22. Довольно распространенная ситуация, которая может оказаться потенциальным источником ошибок, возникает в процессе создания и удаления динамических
- 23. Виртуальные функции Виртуальными называют функции базового класса, которые могут быть переопределены в производном классе. В базовом
- 24. Рассмотрим пример, в котором базовый класс B содержит защищенное поле n и отображает его содержимое на
- 25. class D1: public B { public: D1(int k):B(k){} // конструктор инициализации virtual void show(){cout }; class
- 26. void main() { B bb(2),*ptr; D1 dd1(2); D2 dd2(2); ptr=&bb; ptr->show(); ptr=&dd1; ptr->show(); ptr=&dd2; ptr->show(); }
- 27. Чистые виртуальные функции и абстрактные классы Чистая виртуальная функция не совершает никаких действий, и ее описание
- 28. Объявим абстрактным класс Shape (Геометрическая Фигура), в состав которого включим две чистые виртуальные функции – определение
- 29. class Rectangle: public Shape { double w,h; //ширина и высота public: Rectangle(double w1,double h1):w(w1),h(h1) {} double
- 30. Если в производном классе хотя бы одна из чисто виртуальных функций не переопределяется, то производный класс
- 31. Множественное наследование и виртуальные классы О множественном наследовании говорят в тех случаях, когда в создании производного
- 32. class B2 {//второй базовый класс int y; public: B2(int n):y(n) {cout int get_y(){return y;} ~B2() {cout
- 33. #include void main() { D qq(1,2,3); qq.show(); } //=== Результат работы === Init_B1 Init_B2 Init_D x=1
- 35. Скачать презентацию