Содержание
- 2. Варианты… Наследование Одиночное наследование Множественное наследование При множественном наследовании объекты производных классов могут использовать данные и
- 3. Множественное наследование - определение class D: атрибут_наследования base1, …, атрибут_наследования baseN { . . . };
- 4. Аргументы конструкторов Конструктор_производного_класса (список аргументов) : base1 (список аргументов), …, baseN (список аргументов) { . .
- 5. Виртуальные базовые классы class A { . . . }; class B: public A, protected A
- 6. Виртуальные базовые классы - пример Объект класса A int n; Объект класса B Объект класса A
- 7. Виртуальные базовые классы - пример Такое наследование вполне возможно и компилятор не выдаст сообщение об ошибке,
- 8. Виртуальные базовые классы - пример class A { . . . }; class B: virtual public
- 9. Множественное наследование на примере (1) #include using namespace std; class A { public: int a; A(int
- 10. Множественное наследование на примере (2) class C : virtual public A{ public: int c; C(int c):
- 11. Множественное наследование на примере Результат: void f() { D obj(1); obj.print(); } void main() { f();
- 12. Множественное наследование на примере Результат: … class C : virtual public A{ … … class D
- 13. Множественное наследование на примере Результат: … class C : : virtual public A{ … … class
- 14. Множественное наследование на примере Результат: … class C : : virtual public A{ … … class
- 15. Рассмотрим пример программы, которая основана на использовании виртуальных функций. Организация списка разнородных элементов Предположим, что необходимо
- 16. Абстрактный базовый класс для организации списка Пример программы (1) #include using namespace std; class base {
- 17. Абстрактный базовый класс для организации списка Пример программы (1)
- 18. Конструктор и метод печати заданного множества Пример программы (2) base::base(int n) { num = n; //
- 19. Метод удаления заданного множества Пример программы (3) void base::del(int n) { int i=NmOb; for (base *tmp
- 20. Базовый класс для работы с множествами Пример программы (4) class Set { static int Last_id; int
- 21. Элемент множества – целое число Пример программы (5) class Integer: public base { int i; public:
- 22. Головная программа - тест Пример программы (6) void main(int argc, char * argv[]) { Set* s1=
- 23. Виртуальная функция и ее порожденные экземпляры, имеющие одну и ту же сигнатуру, должны иметь один и
- 24. Перегрузка операторов =, (), [] и -> может быть выполнена только нестатическими функциями-членами. Перегрузка операторов new
- 25. Термин перегрузка относится к использованию одного и того же имени для множества значений оператора или функции.
- 26. Пусть функция print описана как void print( int i = 0); // сигнатура int void print(
- 27. Существует два этапа алгоритма выбора соответствия сигнатуры. Первый этап определяет лучшее соответствие для каждого параметра. На
- 28. Алгоритм выбора перегруженных функций: Использовать точное соответствие, если оно найдено. Проверить поддержку стандартных типов Проверить стандартные
- 29. Тесты … Вопрос: Что напечатает программа: #include void ampersand( int n, int &k ); int main()
- 30. Тесты … Вопрос: Что напечатает программа: #include void ampersand( int n, int &k ); int main()
- 31. Тесты … Вопрос: в каких строках есть ошибки: class A { void Test() const; // 1
- 32. Тесты … Вопрос: в каких строках есть ошибки: class A { void Test() const; // 1
- 33. Тесты … Вопрос: Что будет выведено на экран? #include class A { public: A(void){std::cout ~A(void){std::cout };
- 35. Скачать презентацию