|
Программирование >> Расширенная версия языка c++
Приложение етына вопросы и решения упражнений 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;
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |