![]() Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Упражнения. 1. Создайте шаблон на основе данного класса List:
1. Создайте шаблон на основе данного класса List: class List { public: List(): head(0), tail(0), theCount(0) { } virtual ~List(); void insert(int value); void append(int value); int is_present(int value) const; int is_empty() const { return head == 0; } int count() const { return theCount; } private: class ListCell { public: ListCell(int value, ListCell *cell =): val(value), next(cell){ } int val; ListCell *next; }; ListCell *head; ListCell *tail; int theCount; }; 2. Напишите выполнение обычной (не шаблонной) версии класса List. 3. Напишите шаблонный вариант выполнения. 4. Объявите три списка объектов: типа Strings, типа Cat и типа int. 5. Жучки: что неправильно в приведенном ниже программном коде? (Предположите, что определяется шаблон класса List, а Cat — это класс, определенный на одном из предыдущих занятий.) List< Cat> Cat_List; Cat Felix; CatList.append(Felix); cout < < " Felix is " < < (Cat_List.is_present(Felix))? " ": " not " < < " present\n"; 6. ПОДСКАЗКА (поскольку задание не из самых легких): подумайте, чем тип Cat отличается от типа int? 7. Объявите дружественный оператор operator== для класса List. 8. Напишите выполнение дружественного оператора operator== для класса List. 9. Грешит ли оператор operator== той же проблемой, которая существует в упражнении 5? 10. Напишите выполнение функции шаблона, осуществляющей операцию обмена данными, в результате чего две переменные должны обменяться содержимым. 11. Напишите выполнение класса SchoolClass, показанного в листинге 19.8, как списка. Для добавления в список четырех студентов используйте функцию push_back(). Затем пройдитесь по полученному списку и увеличьте возраст каждого студента на один год. 12. Измените код из упражнения 10 таким образом, чтобы для отображения данных о каждом студенте использовался объект функции. Забиваем Сайты В ТОП КУВАЛДОЙ - Уникальные возможности от SeoHammer
Каждая ссылка анализируется по трем пакетам оценки: SEO, Трафик и SMM.
SeoHammer делает продвижение сайта прозрачным и простым занятием.
Ссылки, вечные ссылки, статьи, упоминания, пресс-релизы - используйте по максимуму потенциал SeoHammer для продвижения вашего сайта.
Что умеет делать SeoHammer
— Продвижение в один клик, интеллектуальный подбор запросов, покупка самых лучших ссылок с высокой степенью качества у лучших бирж ссылок. — Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта. — Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы). — SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание. SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Зарегистрироваться и Начать продвижение
День 20-й. Отслеживание исключительных ситуаций и ошибок
Программный код, представленный в этой книге, был создан в иллюстративных целях. Мы не упоминали о возможных ошибках, чтобы не отвлекать вас от основных моментов программирования, представленных в том или ином фрагменте программы. Реальные же программы должны обязательно предусматривать возможные аварийные ситуации. Сегодня вы узнаете: • Что представляют собой исключительные ситуации • Как перехватываются и обрабатываются исключения • Что такое наследование исключений • Как использовать исключения в общей структуре отслеживания и устранения ошибок • Что представляет собой отладка программы
|