Классы общего назначения в языке Си
Реферат, 13 Апреля 2013, автор: пользователь скрыл имя
Описание
Кроме того, имеется возможность получать целую иерархию производных типов данных из указателей, массивов, структур и объединений. Выражения формируются из операторов и операндов. Любое выражение, включая присваивание и вызов функции, может быть инструкцией. Указатели обеспечивают машинно-независимую адресную арифметику. Си, как и любой другой язык программирования, не свободен от недостатков. Уровень старшинства некоторых операторов не является общепринятым, некоторые синтаксические конструкции могли бы быть лучше. Тем не менее, как оказалось, Си - чрезвычайно эффективный и выразительный язык, пригодный для широкого класса задач.
Содержание
Введение 3
1.Класс CString 4
2.Класс CTime и CTimeSpan 7
3.Класс COleDateTime 10
4.Классы файлов MFC 11
5.Класс CArchive 14
6.Коллекции объектов MFC 18
7.Обработка исключительных ситуаций 21
Заключение 26
Использованная литература 27
Работа состоит из 1 файл
реферат.doc
— 116.00 Кб (Скачать документ)
Некоторые языки также
допускают специальный блок (else),
который выполняется, если ни одного
исключения не было сгенерировано в
соответствующей области действ
В целом, обработка исключений
может выглядеть следующим
try { line = console.readLine(); if (line.length() = 0) throw new EmptyLineException("Строка, считанная с консоли, пустая!");
console.printLine("Привет, %s!" % line);}catch (EmptyLineException exception)
{ console.printLine("Привет!");}
В некоторых языках может быть лишь один обработчик, который разбирается с различными типами исключений самостоятельно.
В некоторых языках, например Си или Перл, нет встроенной обработки исключений.
Проверяемые исключения
Изначально (например, в C++), исключения не являлись обязательными для обработки. Если какое-либо исключение не обрабатывается, то есть если для него нет обработчика в стеке вызова, или обработчик выбросил исключение заново, то выполнение программы прерывается.
В более новых языках, например в Java, наряду с «классическими» появились "проверяемые исключения ". Обрабатываемость таких исключений проверяется компилятором. Метод, в котором оно может возникнуть (в том числе и в вызываемых методах) обязан либо обработать его, либо объявить, что может выбросить такое исключение.
Преимущества и недостатки
Проверяемые исключения снижают количество ситуаций, когда исключение, которое могло быть обработано, вызвало критическую ошибку в программе, поскольку за наличием обработчиков следит компилятор. Это может быть особенно полезно, если метод, который не мог выбрасывать исключение типа X стал это делать: компилятор автоматически отследит все случаи его использования и проверит наличие соответствующего обработчика.
Однако, у проверяемых исключений есть и недостатки. Во-первых, они часто «заставляют» обрабатывать то, с чем программист в принципе справиться не может, например ошибку ввода-вывода в веб-приложении. Это приводит к появлению «глупых» обработчиков, которые не делают ничего или выводят стек вызова исключения и, в итоге, только замусоривают код. Во-вторых это делает невозможным добавление нового проверяемого исключения в методе, описанном в библиотеке, поскольку это нарушает обратную совместимость. (Это верно и для небиблиотечных методов, но в этом случае проблема менее существенна).
В итоге, многие библиотеки объявляют все методы как выбрасывающие некоторый суперкласс исключений (например, Exception). В результате, компилятор «заставляет» писать обработчики исключений даже там, где они, казалось бы, не нужны.
Заключение
Таким образом, классы общего назначения предназначены для хранения и обработки данных. Каждый из них имеет свой прототип и описан в стандартных библиотеках Си. Классы общего назначения существенно упрощают многие операции с данными (в частности, строками) и тем самым помогают сократить написание тех или иных операций.
Использованная литература
Электронные ресурсы:
1. http://frolov-lib.ru/
2. http://www.codenet.ru/
3. http://dic.academic.ru/
4. http://ishodniki.ru/
Книжные издания:
1. Круглински Д., Уингоу С., Шеферд Дж. Программирование на Microsoft Visual C++ 6.0 для профессионалов
2. Герберт Шилдт C++: базовый курс, 3-е издание