На этом шаге мы приведем краткое описание класса xalloc.
Объект класса xalloc, созданный как исключение, передает информацию об ошибке при обработке запроса на выделение памяти. Класс xalloc создан на базе класса xmsg, который выдает сообщение, определяющее сформированное исключение. Определение xmsg в заголовочном файле except.h выглядит так:
class xmsg { public: xmsg(const string & msg); xmsg(const xmsg & msg); ~xmsg(); const string & why() const; void raise() throw(xmsg); xmsg& operator=(const xmsg & src); private: string _FAR *str; };
Класс xmsg не имеет конструктора по умолчанию. Общедоступный (public) конструктор: xmsg (string msg) предполагает, что с каждым xmsg-объектом должно быть связано конкретное явно заданное сообщение типа string. Тип string определен в заголовочном файле cstring.h.
Общедоступные (public) компонентные функции класса:
Вернемся к классу xalloc. Он описан в заголовочном файле except.h следующим образом:
class xalloc : public xmsg { public: xalloc(const string &msg, size_t size); // Конструктор. size_t requested() const; void raise() throw(xalloc); private: size_t siz; };
Класс xalloc не имеет конструктора по умолчанию, поэтому каждое определение объекта xalloc должно включать сообщение, которое выдается в случае, если не может быть выделено size байт памяти. Тип string определен в заголовочном файле cstring.h.
Общедоступные (public) компонентные функции класса xalloc:
На следующем шаге мы рассмотрим примеры программной обработки исключений при динамическом выделении памяти.