Содержание
- 2. Вопросы к Части 1 Перечислите основные парадигмы программирования Перечислите основные понятия ООП и дайте их определения
- 3. Парадигма ООП Определите, какой класс вам необходим Предоставьте полный набор операций для каждого класса Общность классов
- 4. Применимость ООП в конкретной предметной области Если общность между классами отсутствует, вполне достаточно абстракции данных. Применимость
- 5. Определение базовых классов Нахождение общности среди отдельных типов системы представляет собой нетривиальный процесс. Степень такой общности
- 6. Прототипное программирование Стиль объектно-ориентированного программирования, при котором отсутствует понятие класса, а повторное использование (наследование) производится путём
- 7. Инкапсуляция, контроль доступа. struct и class в С++ class Stack { private: int *v,*p; protected: virtual
- 8. Контроль доступа при наследовании class A { private: … protected: int x; public: int y; };
- 9. Определение методов в C++ void Stack::push(int data) { if(!full()) *(p++)=data; }
- 10. Определение методов в Delphi procedure Stack.push(data: Integer); begin if(not full()) then begin v[Top]:=data; Inc(Top); end; end;
- 11. Определение методов в C++ и Java. Inline - методы в C++ class Stack { public: void
- 12. Механизм вызова виртуальных функций class MyShape { public: virtual void draw (); // ... }; //
- 13. Механизм вызова виртуальных функций Чтобы узнать, какую именно из функций rotate следует вызвать, нужно до вызова
- 14. Множественные реализации class ArrayStack: public Stack { int *v,p; //… }; class ListStack: public Stack {
- 15. Друзья class Matrix; class Vector { float v[4]; public: friend Vector multiply(Matrix*, Vector*); friend class Matrix;
- 16. Ссылка на себя (this, Self) class X { int m; public: readM(X* this) { return this->m;
- 17. Ключевое слово const class X { int m; public: int read(const X* this) const { return
- 18. Уточнение имени. inherited в Delphi class MyString { char *s; public: virtual void strcat(char* s, char*
- 19. Вложенные классы class Set { struct Element { int mem; SetMem * next; Element(int m, SetMem
- 20. Указатели на методы Объявление в С++ typedef void (MyClass::*MPtr)(int); Использование в С++ MPtr m=&(MyClass::printInt); MyClass x;
- 21. Инициализация и удаление Когда представление типа скрыто, необходимо дать пользователю средства для инициализации переменных этого типа.
- 22. Инициализация: пример class vector { public: void init ( int size ); // вызвать перед первым
- 23. Конструкторы Будет лучше для инициализации переменных определить некоторую специальную функцию. Тогда две независимые операции размещения и
- 24. Деструкторы Если объекты некоторого типа строятся нетривиально, то нужна еще одна дополнительная операция для удаления их
- 25. Конструкторы и деструкторы: пример class date { int month, day, year; public: date(int, int, int); //
- 26. Создание объектов Объект может создаваться как: автоматический, который создается каждый раз, когда его описание встречается при
- 27. Конструкторы и деструкторы: УПРАЖНЕНИЕ: Определить класс Vector, динамически выделяющий память (размер – параметр конструктора) и освобождающий
- 29. Скачать презентацию