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

1 ... 164 165 166 [ 167 ] 168 169 170 ... 227


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

cou здключение принтера р2 ... \п ; р2.set print(1);

if{inuse(pl, p2)) cou Теперь принтер занят\п ; return 0;

Проверка усвоения материала главы 3

1. Для того чтобы присвоить один объект другому, необходимо, чтобы тип обоих объектов был одинаков.

2. Присваивать оЫ и оЬ ильно, так как память, на которую в начале указывал указатель р объекта оЫ. теряется, поскольку это значение указателя р при присваивании переписывается. Таким образом, такую память становится невозможно освободить, и наоборот, память, на которую в начале указывал указатель р обьекта оЫ, при удалении этого объекта освобождается дважды, что может привести к повреждению системы динамического выделения памяти.

3. in (planet p)

return p.getjniles О / 186000,5. Загрузка алфавита в стек

using namespace std; #define size 27

Объявление класса ack: для символов г

class stack {

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

in м; индекс вершины стека public:

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

void push (char ch) ; помещает свол в стек cha 0; мкивает свол из стека } / - , . 1.

Инициализация стека

stack: : stack ()

cou Работа конструктора стека \п ;



508 Самоучитель C++

tos = 0; - 1- -iio ,

i 1 :

Запись ствола в стек void stack: ;push(char ch) (

if (tos==SISE) I

couL Стек полон \n ; li ! return; ! }\l

-,-1. 3tck[tos] = ch; , -, . , ..... . .:. . v . r-

tos++; ..

I 1-.

Выталкивание ствола из стека char stack: :pop() .. * гП!

if (tO5=0) { -К- ц--!-- , ><.

cou Стек пуст \n ;

return 0; возврат нуля при пустом стеке

I -- :. . V :

tos-;

return

void 3how3tack(stacko) ; stack loadstackO;

stack si; . . . . r

si = loadstackO ;

showstack(sl); ;

return 0;

Вывод на экран содержого стека void showstdCkisLack о)

char с;

когда выполнение этой инструкции завертся, стек о остеет cout с

cout

Загрузка стека стволами алфавита

stack loadstackO :



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

stack t; char с;

for(c=a; c<=z; C-I-+) t.push(c); return t;

6. При передаче объекта функции в качестве аргумента и при возвращении объекта из функции в качестве возвращаемого значения, создается временный объект, который удаляется при завершении работы функции. При удалении временного объекта деструктор может удалить в программе нечто такое, что может еще пригодиться.

7. Дружественная функция - это функция, не являющаяся членом класса, но обеспечивающая доступ к закрытой части класса, для которого она дружественна. Еще раз, дружественная функция имеет доступ к закрытой части класса, для которого она дружественна, но не является членом этого класса.

Проверка усвоения материала в целом

1. Загрузка алфавита в стек linclude <iQstream> linclude <cctype> using namespace std;

Idefine SIZE 27

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

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

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

public:

конструктор void push(char ch) ; помещает символ в стек - . . cha () ; выталкивает символ из стека . . ; .

. };

а,лизация стека Stack;:stackO

cout << Работа конструктора стека \п ; tos = 0;

Запись символа в стек

void stack: : push (char ch)



1 ... 164 165 166 [ 167 ] 168 169 170 ... 227

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