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

1 ... 162 163 164 [ 165 ] 166 167 168 ... 227


Приложение етына вопросы и решения упражнений 507

one.roll() two.roll() one.toll() two.roll(); one . roll () ; two.roll 0

return 0;

ГЛАВА 3

Повторение пройденного

1. Конструктор называется it(), а деструктор - ~wi(Igit().

2. Конструктор вызывается при создании объекта (т. е., когда объект начинает существовать). Деструктор вызывается при удалении объекта.

3 ass Mars: public planet { ...

4. Функцию можно сделать встраиваемой, если перед ее определением поставить спецификатор inline, или если ее определение разместить внутри объявления класса.

5. Встраиваемая функция должна быть определена перед ее первым использованием. В ней не должно быть циклов. Она не должна быть рекурсивной. В ней не может быть инструкций goto и switch. И наконец, она не должна содержать статических переменных.

6. sample ob(100, X) ; , .:: - .. .

Упражнения

1. Инструкция присваивания х = №ильна, поскольку cll с12 - это два

разных а объекты разных типов присваивать нельзя.

2. finclude <iostream> using namespace std;

#define SIZE 100



Самоучитель

clas уре I

.int queue [SIZE]; содержит очередь int head, tail; индексы вершины и хвоста ptJolic:

конструктор voi num) ; запоминание in Of удаление из начала очереди

Конструктор q type::q type{)

head - tail

Помещение значения в очередь voi e: :q(int num)

if (tai ead l (tail 3IZE ad! i I

cout <<- Очередь полна ; , c.T.vr- u

return; -. - . ..

tail++; .

if(tail==SIZE) tail = 0; круговой цикл queue ttail] = num;

Выталкивание значения из очереди in type: :deq()

=tail) I , . .

cou Очередь ста ;

return 0;

head++,

if head 0; круговой цикл

return

tt type ql, q2;

for(i=l; i<=10; I

qi.q(i);

4

... - . <

. ;ii-i. . .-. iii -.li

присваивание одного объекта очередь - другому q=- ql;



Приложение В. Ответы на вопрос ения упражнений 503

демонстрация того факта,

что обе очереди имеют одинаковое содержимое -

foru=i; i<=10; i++J

cout Элемент очереди 1: ql . deq ( ) \n ;

for(i=l; i<=10; i++)

cout Элемент опереди 2: q2.deq() \n ;

return 0;

3. Если для хранения очереди память выделяется динамически, тогда, после присваивания одной очереди другой, когда объекты удаляются, для очереди, стоящей в инструкции присваивания слева, память освобождена не будет, а для очереди, стоящей в инструкции присваивания справа, память будет освобождена дважды. Оба этих условия неприемлемы, что и вызывает ошибку.

1. ttinclude <iostream>

using namespace std;

ttdefine SIZE 10

Объявление класса stack для символов class stack {

cha SIZE] ; содержит стек

in индекс вершины стека

public:

stac О ; конструктор

voi ar ch) ; помещает свол в стек

char po О ; выталкивает свол из стека

Инициализация стека stack: :stack ()

cou << Работа конструктора стека \п ; -г.

tos = 0;

Помещение символа в стек void stack; :push (char ch)

if (tos==SIZE) {

cou << Стек полон \n ;

return;



1 ... 162 163 164 [ 165 ] 166 167 168 ... 227

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