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


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

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

Самые свежие новости со всего мира. Мы работаем для вас 24 часа в сутки.
www.24da.ru
Регистрация доменов RU, SU от 400 рублей. Прогрессивные скидки.
www.direg.ru

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

Альтернативные Интерфейсы
    После того, как описаны средства языка, которые относятся к производным классам, обсуждение снова может вернуться к стоящим задачам. В классах, которые описываются в этом разделе, основополагающая идея состоит в том, что они однажды написаны, а потом их используют программисты, которые не могут изменить их определение. Физически классы состоят из одного или более заголовочных файлов, определяющих интерфейс, и одного или более файлов, определяющих реализацию. Заголовочные файлы будут помещены куда-то туда, откуда пользователь может взять их копии с помощью директивы #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:
Антибот:  
Ваш комментарий:  



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

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

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

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

 
     

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

.