- Фантастика и фэнтези
- Ироническое фэнтези
- Стимпанк
- Детективная фантастика
- Киберпанк
- Попаданцы
- LitRPG
- Космоопера
- Технофэнтези
- Городская фантастика
- Русское фэнтези
- Юмористическая фантастика
- Космическая фантастика
- Боевое фэнтези
- Эпическая фантастика
- Зарубежная фантастика
- Книги магов
- Мистика
- Разная фантастика
- Разное фэнтези
- Любовное фэнтези
- Романтическая фантастика
- Городское фентези
- Историческая фантастика
- Историческое фэнтези
- Социально-философская фантастика
- Сказочная фантастика
- Иностранное фэнтези
- Романтическое фэнтези
- Ироническая фантастика
- Ужасы и Мистика
- Постапокалипсис
- Героическая фантастика
- Фэнтези
- Научная Фантастика
- Социально-психологическая
- Альтернативная история
- Боевая фантастика
- Разная литература
- Пословицы, поговорки
- Шахматы
- Визуальные искусства
- Фанфик
- Авто и ПДД
- Военное
- Отраслевые издания
- Гиды, путеводители
- Зарубежная образовательная литература
- Военная история
- Цитаты из афоризмов
- Современная литература
- Великолепные истории
- Начинающие авторы
- Современная зарубежная литература
- Боевые искусства
- Изобразительное искусство, фотография
- Кино
- Литература 19 века
- Недвижимость
- Музыка, музыканты
- Готические новеллы
- Истории из жизни
- Культура и искусство
- Спецслужбы
- Зарубежная прикладная литература
- Музыка, танцы
- Подростковая литература
- Прочее
- Военная техника, оружие
- Газеты и журналы
- Периодические издания
- Домоводство, Дом и семья
- Любовные романы
- Экономическая литература
- Научные и научно-популярные книги
- О животных
- Биохимия
- Культурология
- Юриспруденция
- Политика
- Психотерапия
- Языкознание
- Научпоп
- Медицина
- Психология, личное
- Радиотехника
- Филология
- Педагогика
- Образовательная литература
- Деловая литература
- Физика
- Науки: разное
- Химия
- Воспитание детей, педагогика
- Детская психология
- Зарубежная публицистика
- Биология
- Архитектура
- Зарубежная психология
- Науки о космосе
- Социология
- Математика
- География
- Беременность, ожидание детей
- Литературоведение
- Транспорт, военная техника
- Обществознание
- Зоология
- География
- Альтернативная медицина
- Иностранные языки
- Ветеринария
- Рефераты
- Астрология
- Биофизика
- Экология
- История Европы
- Учебники
- Шпаргалки
- Государство и право
- Ботаника
- Религиоведение
- История
- Техническая литература
- Прочая научная литература
- Психология
- Детективы и Триллеры
- Справочная литература
- Проза
- Новелла
- Юмор
- Проза
- Историческая проза
- Русская современная проза
- Советская классическая проза
- Повести
- Очерки
- Эссе
- Рассказы
- Зарубежная современная проза
- Сентиментальная проза
- Зарубежная классика
- Афоризмы
- Эпистолярная проза
- Феерия
- Семейный роман/Семейная сага
- Разное
- Антисоветская литература
- Магический реализм
- Русская классическая проза
- Современная проза
- О войне
- Контркультура
- Классическая проза
- Поэзия, Драматургия
- Детская литература
- Детская фантастика
- Детские остросюжетные
- Детские стихи
- Детские приключения
- Внеклассное чтение
- Учебная литература
- Зарубежные детские книги
- Бизнес
- Загадки
- Книги для подростков
- Школьные учебники
- Детский фольклор
- Книги для дошкольников
- Детские детективы
- Детская познавательная и развивающая литература
- Буквари
- Прочая детская литература
- Сказка
- Детская проза
- Детская образовательная литература
- Юмор
- Документальные книги
- Бизнес
- Внешнеэкономическая деятельность
- Тайм-менеджмент
- Кадровый менеджмент
- О бизнесе популярно
- Управление, подбор персонала
- Бизнес
- Менеджмент и кадры
- Продажи
- Экономика
- Ценные бумаги и инвестиции
- Малый бизнес
- Делопроизводство, офис
- Корпоративная культура, бизнес
- Банковское дело
- Финансы
- Зарубежная деловая литература
- Ораторское искусство / риторика
- Личные финансы
- Интернет-бизнес
- Поиск работы
- Государственное и муниципальное управление
- Бухучет и аудит
- Работа с клиентами
- Менеджмент
- Краткое содержание
- Личная эффективность
- Переговоры
- Приключения
- Старинная литература
- Религия и духовность
- Компьютеры и Интернет
- Блог
Читаем без скачивания Программирование. Принципы и практика использования C++ Исправленное издание - Бьёрн Страуструп
Шрифт:
Интервал:
Закладка:
// устанавливает связь с ее заменой
{
if (ad_left) {
detach(*adp1);
attach(*adp2);
}
else {
detach(*adp2);
attach(*adp1);
}
ad_left = !ad_left;
}
int main()
{
W7 w(400,500,"move");
return gui_main();
}
Эта программа демонстрирует основные способы добавления и удаления элементов окна, которые проявляются в их исчезновении и появлении.
Глоссарий
“Часто точно выбранные слова стоят тысячи рисунков”.
Аноним
Глоссарий — это краткое объяснение слов, использованных в тексте. Ниже приведен относительно краткий словарь терминов, которые мы считаем наиболее важными, особенно на ранних этапах изучения программирования. Предметный указатель и раздел “Термины” в конце каждой главы также могут помочь читателям в этом. Более подробный и широкий словарь терминов, тесно связанных с языком С++, можно найти на веб-странице www.research.att.com/~bs/glossary.html. Кроме того, в веб существует невероятно много специализированных глоссариев (очень разного качества). Пожалуйста, имейте в виду, что термины могут иметь несколько разных значений (некоторые из них мы указываем), причем большинство перечисленных нами терминов в другом контексте могут иметь иной смысл; например, мы не определяем слово абстрактный (abstract) как прилагательное, относящееся к современной живописи, юридической практике или философии.
Абстрактный класс (abstract class). Класс, который невозможно непосредственно использовать для создания объектов; часто используется для определения интерфейсов производных классов. Класс является абстрактным, если содержит чисто виртуальную функцию или защищенный конструктор.
Абстракция (abstraction). Описание сущности, которая вольно или невольно игнорирует (скрывает) детали (например, детали реализации); селективное незнание.
Адрес (address). Значение, позволяющее найти объект в памяти компьютера.
Алгоритм (algorithm). Процедура или формула для решения проблемы; конечная последовательность вычислительных шагов, приводящих к результату.
Альтернативное имя (alias). Альтернативный способ обращения к объекту; часто имя, указатель или ссылка.
Аппроксимация (approximation). Нечто (например, число или проект), близкое к совершенству или идеалу (числу или проекту). Часто аппроксимация является результатом компромисса между принципами.
Аргумент (argument). Значение, передаваемое функции или шаблону, в которых доступ осуществляется через параметр.
Базовый класс (base class). Класс, используемый как база иерархии классов. Обычно базовый класс содержит одну или несколько виртуальных функций.
Байт (byte). Основная единица адресации в большинстве компьютеров. Как правило, байт состоит из восьми битов.
Бесконечная рекурсия (infinite recursion). Рекурсия, которая никогда не заканчивается, пока компьютер не исчерпает память, необходимую для хранения вызовов. На практике такая рекурсия никогда не бывает бесконечной, а прекращается в результате ошибки аппаратного обеспечения.
Бесконечный цикл (infinite loop). Цикл, в котором условие выхода из него никогда не выполняется. См. (iteration).
Библиотека (library). Совокупность типов, функций, классов и т.п., реализованных в виде набора средств (абстракций), которые могут использовать многие программы.
Бит (bit). Основная единица измерения количества информации в компьютере. Бит может принимать значение 0 или 1.
Ввод (input). Значения, используемые для вычисления (например, аргументы функции или символы, набранные на клавиатуре).
Виртуальная функция (virtual function). Функция-член, которую можно заместить в производном классе.
Время жизни (lifetime). Время, прошедшее между моментом инициализации и моментом, в который объект становится неиспользуемым (выходя из области видимости, уничтожается или прекращает существовать из-за прекращения работы программы).
Вывод (output). Значения, созданные в результате вычислений (например, результат работы функции или строка символов, выведенная на экран).
Выполняемый код (executable). Программа, готовая к выполнению на компьютере.
Вычисление (computation). Выполнение некоего кода, обычно получающего входную информацию и создающего результат.
Данные (data). Значения, используемые для вычислений.
Деструктор (destructor). Операция, неявно вызываемая для уничтожения объекта (например, в конце области видимости). Обычно освобождает ресурсы.
Дефект (bug). Ошибка в программе.
Диапазон (range). Последовательность значений, которую можно описать, задав начальную и конечную точки. Например, диапазон [0:5) означает значения 0, 1, 2, 3 и 4.
Единица (unit). 1) Стандартная мера, придающая значению смысл (например, км для расстояния); 2) различимая (т.е. имеющая имя) часть целого.
Заголовок (header). Файл, содержащий объявления, используемые для распределения интерфейсов между частями программы.
Замещение (override). Определение функции в производном классе, имя и типы аргументов которой совпадают с именем и типами аргументов виртуальной функции из базового класса; в результате эту функцию можно вызывать с помощью интерфейса базового класса.
Значение (value). Совокупность битов в памяти, интерпретируемая в соответствии с типом.
Идеал (ideal). Совершенный вариант того, к чему мы стремимся. Обычно мы вынуждены соглашаться на компромисс и довольствоваться лишь приближением к идеалу.
Изменяемый (mutable). Сущность, допускающая изменение своего состояния, в противоположность неизменяемым объектам, константам и переменным.
Инвариант (invariant). Условие, которое всегда должно выполняться в заданной точке (или точках) программы; обычно используется для описания состояния (набора значений) объекта или цикла перед входом в повторяющуюся инструкцию.
Инициализация (initialize). Присваивание объекту первого (начального) значения.
Инкапсуляция (encapsulation). Защита деталей реализации от несанкционированного доступа.
Интерфейс (interface). Объявление или набор объявлений, определяющих способ вызова фрагмента кода (например, функции или класса).
Исходный код (source code). Код, созданный программистом и (в принципе) пригодный для чтения другими программистами.
Исходный файл (source file). Файл, содержащий исходный код.
Итератор (iterator). Объект, идентифицирующий элемент последовательности.
Итерация (iteration). Повторяющееся выполнение фрагмента кода; см. рекурсия.
Класс (class). Определенный пользователем тип, который может содержать данныечлены, функции-члены и типы-члены.
Код (code). Программа или часть программы; может быть исходным или объектным.
Компилятор (compiler). Программа, превращающая исходный код в объектный.
Компромисс (trade-off). Результат согласования нескольких принципов проектирования и реализации.
Конкретный класс (concrete class). Класс, объекты которого можно создать.
Константа (constant). Значение, которое невозможно изменить (в заданной области видимости).
Конструктор (constructor). Операция, инициализирующая (конструирующая) объект. Обычно конструктор устанавливает инвариант и часто запрашивает ресурсы, необходимые для использования объектов (которые обычно освобождаются деструктором).
Контейнер (container). Объект, содержащий элементы (другие объекты).
Литерал (literal). Обозначение, которое непосредственно задает число, например, литерал 12 задает целое число, равное “двенадцать”.
Массив (array). Однородная последовательность элементов, обычно нумерованная, например [0:max].
Нагромождение возможностей (feature creep). Стремление добавлять избыточные функциональные возможности в программу “на всякий случай”.
Неинициализированный (uninitialized). (Неопределенное) состояние объекта до его инициализации.
Область видимости (scope). Область текста программы (исходного кода), в которой можно ссылаться на имя сущности.
Объект (object). 1) Инициализированная область памяти известного типа, в которой записано какое-то значение данного типа; 2) область памяти.
Объектно-ориентированное программирование (object-oriented programming). Стиль программирования, нацеленный на проектирование и использование классов и иерархий классов.
Объектный код (object code). Результат работы компилятора, представляющий собой входную информацию для редактора связей, который, в свою очередь, создает выполняемый код.
Объектный файл (object file). Файл, содержащий объектный код.
Объявление (declaration). Спецификация имени с