![]() |
|
Программирование >> Расширенная версия языка c++
504 Самоучитель C++ stck [tos] = ch; .. ,. r,.-:\ tos++; - , . if. ir.T.-;-)<-.vi ,-, * \ . , , .. Выталкивание ствола из стека char stack;:pop() * if (tos=0) I t cou Стек пуст \n ; . return 0; возврат нуля при пустом стеке tos-; , . . :-, -v return ) - * : : if::;..;: - . .ft;itr> voi ckstack o) ; . , . , 7 stack int i; . . si.push(a); sl.push(b); sl.push(c); 3howstack(sl) ; .. . ,л объект в функции inO по-прежнему существует cou < Сте все еще содержит слеющее: Nn ; for(i=0; КЗ; i++) cout sl.popO \n ; return 0; Вывод содержимого стека void o) char когда выполнение этой инструкции завершится, стек о опустеет while(c=o.pop()) cou с \n ; cout \n ; Эта программа выводит на экран следующее: Работа конструктора стека -. Приложение В. Ответы на вопросы и решения упражнений 505 Стек пуст Сте si все еще содержит слеющее: с 2, Память для хранения целого, на которую указывает указатель р в объекте о, который используется при вызове функции negO, освобождается, когда при завершении функцией neg() своей работы копия объекта о удаляется; однако эта память все еще необходима для объекта о в функции mainO. 1. ftinclude <iostreain> using namespace std; class who { char name; public: who(char c) { cou Создание объекта who tt ; i cou name \n ; ~wh0() { couX Удаление объекта wh name \n ; who makewho () ; .n -. ,. who temp ( В) ; return temp; , , . 1 int mainO ( who ob ( A) ; , makewho(); return 0; J . . . 2. Имеется несколько ситуаций, в которгх возвращать объект бгло бы неправильно. Вот одна из таких ситуаций: если при создании объекта файл открывается, а при удалении объекта файл закрывается, тогда к закрытию файла приведет удаление временного объекта, которое происходит, когда функция возвращает объект. 506 Самоучитель C++ 1. tinclude <iostream> using namespace std; clas рт2; предварительное объявление class prl I , int printing; public: prl 0 I printing = 0; } void 5et J)rint(int status) { printing = status; . . . friend in e(prl ol, pr2 o2) ; . . class pr2 I int printing; ... public: I printing } void (int status) I printing status; ... friend in e{prl ol, pr2 o2) ; Возвращаем истину при занятом принтере int inuse(prl ol, prl o2) if (ol.printing I nting) return 1; else return 0; prl pi; pr2 p2; if(!inuse(pi, p2)) cou << Принтер свободенХп ; cou << Установка для печати принтера р1 . . .\п ; pl,set print (1) ; if(inuse(р1, р2)) cou Теперь принтер занят\п cou Отключение принтера р1 ... \п ; :, р1.3et print(О) ; if (!inuse(р1, р2)) cou Принтер свободенХп ;
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |