MaterStudiorum.ru - домашняя страничка студента.
Минимум рекламы - максимум информации.


Авиация и космонавтика
Административное право
Арбитражный процесс
Архитектура
Астрология
Астрономия
Банковское дело
Безопасность жизнедеятельности
Биографии
Биология
Биология и химия
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
Валютные отношения
Ветеринария
Военная кафедра
География
Геодезия
Геология
Геополитика
Государство и право
Гражданское право и процесс
Делопроизводство
Деньги и кредит
Естествознание
Журналистика
Зоология
Издательское дело и полиграфия
Инвестиции
Иностранный язык
Информатика
Информатика, программирование
Исторические личности
История
История техники
Кибернетика
Коммуникации и связь
Компьютерные науки
Косметология
Краткое содержание произведений
Криминалистика
Криминология
Криптология
Кулинария
Культура и искусство
Культурология
Литература и русский язык
Литература(зарубежная)
Логика
Логистика
Маркетинг
Математика
Медицина, здоровье
Медицинские науки
Международное публичное право
Международное частное право
Международные отношения
Менеджмент
Металлургия
Москвоведение
Музыка
Муниципальное право
Налоги, налогообложение
Наука и техника
Начертательная геометрия
Новейшая история, политология
Оккультизм и уфология
Остальные рефераты
Педагогика
Полиграфия
Политология
Право
Право, юриспруденция
Предпринимательство
Промышленность, производство
Психология
Психология, педагогика
Радиоэлектроника
Разное
Реклама
Религия и мифология
Риторика
Сексология
Социология
Статистика
Страхование
Строительные науки
Строительство
Схемотехника
Таможенная система
Теория государства и права
Теория организации
Теплотехника
Технология
Товароведение
Транспорт
Трудовое право
Туризм
Уголовное право и процесс
Управление
Управленческие науки
Физика
Физкультура и спорт
Философия
Финансовые науки
Финансы
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
Экология
Экономика
Экономико-математическое моделирование
Экономическая география
Экономическая теория
Эргономика
Этика
Юриспруденция
Языковедение
Языкознание, филология
    Начало -> Информатика, программирование -> Альтернативные Интерфейсы

Название:Альтернативные Интерфейсы
Просмотров:159
Раздел:Информатика, программирование
Ссылка:Скачать(10 KB)
Описание:Интерфейс. Реализация. Как Этим Пользоваться. Обработка Ошибок. Обобщенные Классы. Ограниченные Интерфейсы.

Университетская электронная библиотека.
www.infoliolib.info

Часть полного текста документа:

Альтернативные Интерфейсы
    После того, как описаны средства языка, которые относятся к производным классам, обсуждение снова может вернуться к стоящим задачам. В классах, которые описываются в этом разделе, основополагающая идея состоит в том, что они однажды написаны, а потом их используют программисты, которые не могут изменить их определение. Физически классы состоят из одного или более заголовочных файлов, определяющих интерфейс, и одного или более файлов, определяющих реализацию. Заголовочные файлы будут помещены куда-то туда, откуда пользователь может взять их копии с помощью директивы #include. Файлы, определяющие реализацию, обычно компилируют и помещают в библиотеку. Интерфейс
    Рассмотрим такое написание класса slist для однократно связанного списка, с помощью которого можно создавать как однородные, так и неоднородные списки объектов тех типов, которые еще должны быть определены. Сначала мы определим тип ent:
    typedef void* ent;
    Точная сущность типа ent несущественна, но нужно, чтобы в нем мог храниться указатель. Тогда мы определим тип slink:
    class slink {
    friend class slist;
    friend class slist_iterator;
    slink* next;
    ent e;
    slink(ent a, slink* p) { e=a; next=p;}
    };
    В одном звене может храниться один ent, и с помощью него реализуется класс slist:
    class slist {
    friend class slist_iterator;
    slink* last; // last->next - голова списка
    public:
    int insert(ent a); // добавить в голову списка
    int append(ent a); // добавить в хвост списка
    ent get(); // вернуться и убрать голову списка
    void clear(); // убрать все звенья
    slist() { last=0; }
    slist(ent a) { last=new slink(a,0); last->next=last; }
    ~slist() { clear(); }
    };
    Хотя список очевидным образом реализуется как связанный список, реализацию можно изменить так, чтобы использовался вектор из ent"ов, не повлияв при этом на пользователей. То есть, применение slink"ов никак не видно в описаниях открытых функций slist"ов, а видно только в закрытой части и определениях функций. Реализация
    Реализующие slist функции в основном просты. Единственная настоящая сложность - что делать в случае ошибки, если, например, пользователь попытается get() что-нибудь из пустого списка. Здесь приводятся определения членов slist. Обратите внимание, как хранение указателя на последний элемент кругового списка дает возможность просто реализовать оба действия append() и insert():
    int slist::insert(ent a)
    {
    if (last)
    last->next = new slink(a,last->next);
    else {
    last = new slink(a,0);
    last->next = last;
    }
    return 0;
    }
    int slist::append(ent a)
    {
    if (last)
    last = last->next = new slink(a,last->next);
    else {
    last = new slink(a,0);
    last->next = last;
    }
    return 0;
    }
    ent slist::get()
    {
    if (last == 0) slist_handler("get fromempty list");
    // взять из пустого списка
    slink* f = last->next;
    ent r f->e;
    if (f == last)
    last = 0;
    else
    last->next = f->next;
    delete f;
    return f;
    }
    Обратите внимание, как вызывается slist_handler. ............




Нет комментариев.



Оставить комментарий:

Ваше Имя:
Email:
Антибот:  
Ваш комментарий:  



Похожие работы:

Название:Некоторые вопросы экологии
Просмотров:155
Описание:                             Реферат Некоторые вопросы экологии ученицы 9-А класса общеобразовательной школы-комплекс № 2 Илюсенко Елизаветы Евгеньевны

Название:Некоторые линейные операторы
Просмотров:156
Описание: Содержание Введение §1. Определение линейного оператора. Примеры §2. Непрерывные линейные операторы в нормированном пространстве. Ограниченность и норма линейного оператора §3. Обратный оператор. Спект

Название:План воспитательной работы классного руководителя с учащимися 1 класса, в котором обучаются дети, которые до школы не были знакомы
Просмотров:162
Описание: Содержание Введение 1.  Общие требования к составлению плана воспитательной работы классного руководителя 2.  План воспитательной работы классного руководителя с учащимися 1 класса, которые до школ

Название:Некоторые особенности допечатной подготовки
Просмотров:213
Описание: Если вы готовите макет собственными силами, вы обязательно должны знать об особенностях допечатной подготовки, т.к. если их не учитывать, есть риск переделывать всю работу или ее отдельные части вам или агентству (н

Название:Некоторые интерполяционные свойства конечномерных сетевых пространств и пространств Лоренца
Просмотров:152
Описание: Министерство образования и науки республики Казахстан Северо-Казахстанский государственный университет им. М. Козыбаева Факультет информационных технологий Кафедра математики Курсовая рабо

 
     

Вечно с вами © MaterStudiorum.ru