![]() |
|
Программирование >> Расширенная версия языка c++
Приложение В. Ответы носы и решения упражнений 621 параметров и то же их количество, что и исходная функция. В данном случае, переопределенная функции!) отличается числом своих параметров. 7. Да. Проверка усвоения материала в целом 1. Демонстрация возможностей виртуальных функций ttinclude <iostream> ttinclude <cstdlib> using namespace std; class list ( public: lis ad; указатель на начало списка lis il; указатель на конец списка list *next; указатель на слеющий элемент списка in uiti; число для хранения list () ( head = tail = next = NULL; } virtual void store(int 1) 0; virtual int 0; Создание списка типа очередь class queue: public list ( public: voi e(int i) ; Int retrieve () ; : queue i) { return } int operator -(int unused) { return retrieve(); } void i) f - list item new queue; cou Ошибка выделения памятиХп ; exit(1); } , item -> num = i; Добавление элемента в конец списка if (tail) tail -> next = Item; tail = item; item -> next = NULL; if(ihead) head = tail; Самоучитель C++. intqueue : : retrieve:) int i ; iist *p; if (Ihead) I cou Список пустХп ; , return 0; Удаление элемента иэ начала списка i = head -> num; р = head; head = head -> next; delete p; return i; / / Создание списка типа стек class stack: public list I . , public: . , void storeIint i) ; int stack i) I return int operator unused) I return void stacl-:: :store(inti) list *item; , - item = new stack; if (litem) { cou Обка выделения памятиХп ; exit(l); item -> num Добавление элемента в начало списка item -> next = head; head item; if( ! tail) taii - head; int i; list *p; Приложение В. Ответы на вопросы и решения упражнений. 623 if(lhead) { cou << Список пустХп ; return 0; Удаление элемента из начала списка i = head -> num; р = head; . ., . :-. head = head -> next; delete p; return i; Демонстрация очереди eue q ob; q ob +1; -I I--JW,.: q ob + 2; . , v=;-.-r q ob + 3; cout Очередь cout q ob - cout << q ob - cout cout \n ; Демонстрация стека stack s ob; s ob + 1; S Ob + 2; S Ob 4 3; cou Стек: ; cout s ob - ; cout s ob - ; cout s ob - ; cout return 2. Отличие виртуальные кций от перегружаемых том, что перегружаемые функции должны отличаться либо числом, либо типом своих параметров. Подменяемая виртуальная функция должна иметь точно такой же прототип (поэтому такой же тип возвращаемого значения, такой же тип параметров и то же их число), как и исходная функция.
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0.002
При копировании материалов приветствуются ссылки. |