Программирование >>  Расширенная версия языка c++ 

1 ... 202 203 204 [ 205 ] 206 207 208 ... 227


Приложение В. Ответы носы и решения упражнений 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. Отличие виртуальные кций от перегружаемых том, что перегружаемые функции должны отличаться либо числом, либо типом своих параметров. Подменяемая виртуальная функция должна иметь точно такой же прототип (поэтому такой же тип возвращаемого значения, такой же тип параметров и то же их число), как и исходная функция.



1 ... 202 203 204 [ 205 ] 206 207 208 ... 227

© 2006 - 2025 pmbk.ru. Генерация страницы: 0.002
При копировании материалов приветствуются ссылки.
Яндекс.Метрика