Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Часть VI. Великолепная десятка
помогает избежать всех проблем (например, вызывающая функция может просто "забыть" вызвать releas e ()), однако все же снижает вероятность их возникновения.
Механизм исключений в C++ специально для удобства и эффективности обработки ошибок. Теперь, когда эта возможность стандартизована, вы можете спо- койно использовать ее.
Множественное наследование, как и перегрузка операторов, на порядок усложня- ют программу, что совсем не нужно начинающему программисту. К счастью, боль- шинство отношений реального мира могут быть выражены с помощью одиночного наследования (некоторые утверждают, что множественное наследование вообще не нужно, но я не из таких). В любом случае вы можете спокойно использовать классы с множественным на- следованием из коммерческих библиотек, например классы Microsoft MFC. Лишь убедившись в том, что вы твердо понимаете концепции C++, можно начи- нать экспериментировать с множественным наследованием. Вы будете уже достаточно подготовлены к неожиданным ситуациям, которые могут возникнуть при использова- нии этого механизма.
Глава 29. Десять способов ошибок 321 Приложение А Словарь терминов v
Абстрактный класс Абстракция
Базовый класс Виртуальная функция-член Внешняя (outline) функция
Встраиваемая (inline) функция Выражение
Глобальная пере- менная Глубокое копиро- вание
Закрытый Защищенный
Классификация
Конструктор
this
Abstract class Abstraction
Base class Virtual member function Outline function
Inline function Expression Global variable Deep copy
Friend Private Protected
Classification
Constructor
Указатель на текущий обьект. это скрытый первый аргумент всех нестатических функций-членов, Всегда имеет тип "указатель на текущий класс". Таблица, которая содержит адреса виртуальных функций класса, Каждый класс, который имеет одну или больше вирту- альных функций, обязательно содержит такую таблицу. который содержит одну или несколько чисто виртуаль- ных функций, Создание объекта такого класса невозможно. Концепция упрощения реального мира, который разбивается на основные элементы. Абстракция позволяет классам ото- бражать реальный мир. Без абстракции классы представляли бы реальность а ее безнадежно запутанном виде. Класс, из которого порождаются другие классы. Функция-член, которая вызывается полиморфно. См. поли- морфизм. Обычная функция, тело которой находится, как правило, в месте ее объявления. Все последующие обращения к функ- ции приводят к ее вызову из одного места в памяти. См. также встраиваемаяфункция. подставляемая в точке вызова; очень похожа на макроопределение. Последовательность подвыражений и операторов. В языках С и выражение всегда имеет тип и значение. объявленная вне каких-либо функций и благода- ря этому доступная для всех функций. Когирование объекта, состоящее в реплицировании содержи- мого объекта и ресурсов, которыми владеет объект, включая объекты, на которые указывают данные-члены копируемого объекта. или класс, которые не являются членом данного класса, однако имеют доступ к защищенным членам класса. Член класса, доступный только для других членов того же класса. Член класса, доступный только для членов этого класса и его подклассов. Защищенные члены класса не являются общедос- тупными. Объединение похожих объектов. Например, теплокровные, живородящие, вскормленные молоком матери существа, объ- единяются в один класс — млекопитающие. Специальная функция-член, которая автоматически вызывает- ся в момент создания объекта. 322 Приложение А. Словарь терминов Конструктор Default constructor Конструктор, который содержит пустой список умолчанию Контрольное поле Signature field Нестатический член, которому присваивается определенное значение. Это значение может быть затем проверено функ- циями-членами для контроля корректности указателя на объ- ект. Это очень эффективный отладочный прием. Копирующий кон- структор (конструктор ко- пирования) Куча
Метод Наследование
Открытый - ориентированное програм- мирование Объявление про- тотипа функции Объявление функции
Функция обратно- го вызова Парадигма
Перегрузка
Перегрузка опе- раторов Переопределение
Поверхностное копирование Подкласс
Позднее связыва- ние Copy constructor
Heap
Method Inheritance
Public Object-oriented programming
Function prototype declaration Function declaration
Callback function Paradigm
Overloading
Operator overloading Overriding
Shallow copy
Subclass
Latebinding аргументом которого является ссылка на объект того же класса. Например, копирующий конструктор для клас- са z объявляется как : z (z
Память, выделяемая для программы с помощью функции () . Эта память должна быть освобождена посредст- вом функции fre e () . См.функция-член. Способность классов C++ перенимать свойства уже сущест- вующих классов. Член класса, доступный извне этого класса. Программирование, которое базируется на принципах сокры- тия данных, абстракции и полиморфизме.
Объявление функции, которое не содержит кода (тела функции). Описание функции, состоящее в указании имени функции, имени класса, с которым связана эта функция (если связана), количества и типа всех аргументов, а также типа возвращае- мого функцией значения, вызываемая операционной системой в ответ на оп- ределенное событие. В области программирования — способ мышления. Использу- ется в контексте, например: объектно-ориентированная пара- дигма и функциональная парадигма. Предоставление двум разным функциям одинакового имени. Такие функции различаются компилятором по количеству и типам их аргументов. Определение функциональности встроенных операторов при использовании с пользовательскими типами. Создание в подклассе функции с тем же именем и аргумента- ми, что и в базовом классе. См. полиморфизм и виртуальная функция-член. Побитовое копирование.
Класс, наследующий открытые свойства другого класса. Если подкласс класса Student , Значит, ЯВЛЯЕТСЯ Student . Процесс, который используется в C++ для осуществления по- лиморфизма. Приложение А. Словарь терминов 323 Полиморфизм
Порожденный класс Поток ввода- вывода
Раннее связыва- ние
Расширяемость
Сегмент данных
Сегмент кода Сегмент стека
Сигнатура функ- ции Сокращенное вы- числение
Ссылочная пере- менная Статическая функция-член Статический член Polymorphism
Derived class Stream i/o
Early binding Extensibility Data segment Code segment Stack segment
Function signature
Short-circuit evaluation
Reference variable
Static member function Static data member Способность решать, какая из перегруженных функций-членов должна быть вызвана в зависимости от текущего типа време- ни исполнения объекта. Класс, который наследует другой класс.
Ввод-вывод в C++, основанный на перегруженных операторах operato r << и operato r >>. Прототипы этих функций находятся во включаемом файле los t Нормальный (не полиморфный) метод вызова. Все вызовы в С осуществляются с использованием раннего связывания. Способность добавления новых возможностей в класс без нения существующего кода, который используется этим классом, Блок памяти, в котором С и C++ хранят глобальные стати- ческиепеременные,См.такжесегменткода исегментстека. Часть программы, которая содержит исполняемые инструкции. Часть программы в памяти, которая содержит нестатические локальные переменные. То же самое, что и полное имя функции (включающее типы аргументов). Метод, при котором правая часть подвыражения не вычисля- ется в том случае, если это не изменит результат выражения. Такая ситуация может возникнуть с двумя операторами: ! и &s, Например, если в выражении а ь левый аргумент равен о (false) , то нет необходимости вычислять правый аргумент, поскольку результат все равно будет равен о. Переменная, которая выступает в качестве псевдонима другой переменной. Функция-член, не имеющая указателя
Член, который не связан с отдельными экземплярами класса, Для каждого класса существует только один экземпляр каждо- го статического члена, независимо от того, сколько объектов этого класса было создано. Тип переменной Variable type Определяет размер и внутреннюю структуру переменной. Примерами встроенных типов являются int . char , doubl e И float. Указатель Устранение неод- нозначности
Фаза анализа Фаза кодирования Фаза разработки Pointer variable Disambiguation
Analysis phase Coding phase Design phase Переменная, которая содержит адрес. Процесс выбора того, к какой из перегружаемых функций от- носится вызов а зависимости от прототипов перегруженных функций. Одна из фаз создания приложения, время которой анали- зируется поставленная задача и ее основные элементы. Фаза, во время которой результаты фазы разработки вопло- щаются в коде. Фаза создания приложения, во время которой формулируется решение проблемы. Входными данными для нее является ре- зультат фазы анализа. 324 Приложение А. Словарь терминов Функция-член Member function определенная как часть класса; объявляется так же, как и данные-члены. Чисто virtual function Виртуальная функция, которая не имеет функция Член класса Class member См. статический член. Член экземпляра Instance member Еще один синоним обычного (не статического) члена. Экземпляр класса of a class Объект объявленного типа. Например, i является экземпля- ром класса in t в объявлении in t i. ЯВЛЯЕТСЯ 1S_A Тип взаимосвязи между подклассом и классом. Например, Mallar d ЯВЛЯЕТСЯ Duck; это означает, что объект класса Mallar d является также объектом класса Duck.
Приложение А. Словарь терминов 325 36; 42 45 !=, 45 %, 40 %=, 40 &, 49; i &&. 45 40; 89 *= . 40 /, 40 49 |,49
~, 49 +, 39 ++, 39; 42 +=, 40 45 <=, 45
45 >, 45 45
private, 173
struct, 142; I this. 322 virtual, 235 wchar t. 87
V w A класс, 322
class, 142 1
D delete, 96 Абстракция, 139; 171; 322 Адрес, 88
Б Базовый класс. 227
В Free Software Foundation, 23 friend, 174; 268
G Виртуальная функция, 236; 240 чисто виртуальная функция, 248 Виртуальное наследование, 310 Временные объекты, 206 Выражение, 29; 322 смешанного типа, 37 GNU, 23
N new, 96
О operator, 266
Глубокое копирование. 205 Грамматика, 22
Д 149 Двоичная система счисления, Предметный указатель 327 Декремент, 42 Деструктор, 182; 192 виртуальный, 241 Директива
Друг класса, 268
Защищенные члены, 171
И Инкремент, 42; 43 Инструкции ветвления, 53 Инструкция, 28 выбора, 63 Исключение, 299; 1 Исключительная ситуация, 299
К Класс, 142; 177 абстрактный, 247; 248 базовый, 227; 322 друзья, 174 защищенные члены, 171 конкретный, 247 статические члены, 209 Классификация, 140 Комментарии, 28 Компилятор, 22 Компоновка, 109 Константа, 36 Конструктор, 178; 322 аргументы, 185 копирования, 199 копирования по умолчанию, 201 копирующий, 199 перегрузка, 188 по умолчанию, 109; 192 порядок вызова, 195 членов класса, 191 Конструктор копирования, 279 Куча, 94 м Массив, 77; 99; 158; 165 индекс, 78; 80; 158 инициализация, 80 объектов, 159 объявление, 78 символьный, 82 копирование, 204 Метод, 150 Множественное наследование, 306—14 конструирование объектов, 312 Модуль, 109
Н Наследование, 225-30; 323 Неявное преобразоБание типов, 274
О Область видимости, 94 разрешение, 153 Объект, 142; 177 активизация, 147 временный, 206 глобальный, 177 локальный, 177 текущий, 153 Объектно-ориентированное программирование, 139; 234 Объявление, 28 Оператор, 30; 265 !.45 45 40 40 &, 49 &&, 45 *.40 /,40 49 49 45 ~, 49 + , 39 ++, 39 +=, 40 <,45 <=, 45 40 =. 40 == , 45 >. 45 45 перегрузка, 265 Предметный указатель Оператор присвоения, 279 Операторная функция, 266 Операторы потоков, 285 Операция. 39 битовая. 39 логическая, 44 над указателями, 98 порядок выполнения, 41 унарная 42 Операция условного перехода, 53 Отладка, Отладчик, 124—32 Отношение СОДЕРЖИТ, 229 Отношение ЯВЛЯЕТСЯ, 227; 243 Ошибки времени исполнения, Ошибки компиляции, п Перегрузка, 323 Перегрузка оператора, 265 Перегрузка функций, 73 Передача аргументов по значению, 93 Передача аргументов по ссылке, 94 Переменная, 28; 31 глобальная, 76 инициализация, 36 локальная, 75 статическая, 76; 195 Переопределение функций, 233 Позднее связывание, 233 Полиморфизм, 233; 324 Потоки 285-98 манипуляторы, 292 операторов, 294 стандартные, 286 Преобразование типов, 72 Приведение повышающее, 38 понижающее, 38 Приоритет, 99 Присвоение, 30; 42 Программа, 22
Разворачивание стека, 301 Разложение, 243; 246 Разыменование, 160 Раннее связывание, 233; 235 Реализация, 143
Свойство класса, 143 Связанный список, 166 Связывание, 109 Семантика, 22 Синтаксис, 22 Смещение, 98 Соглашения по именованию, 37 Ссылка, 94 Статические члены, 209 Строка, 86; 101
Тип char, 35; 87 double, 35; float, 35 int, 35 long, 35 string, 35 Точка останова, 129
У Указатель, 88; 89; 159; 324 Уровень абстракции, 139 Утечка памяти, 270
Ф Фонд свободного программного обеспечения, 23 67; 161 аргументы, 69; 71 возвращаемое значение, 69 перегрузка, 73 передача аргументов по значению, 93 передача аргументов по ссылке, 94 прототип, 75 тело, 69 148 встраиваемая, 155
Ц Цикл, 55 56 for, 57 while, 55 бесконечный, 59 вложенный, 62 Предметный указатель 329 60 Член класса, 143; 209; 325 оператор continue. 61 Член объекта, 209 Ч э Чисто виртуальная функция, 248; 325 Экземпляр, 140; 143
Предметный указатель ПРОГРАММИРОВАНИЯ ДЛЯ "ЧАЙНИКОВ", 2-Е ИЗДАНИЕ Уоллес Вонг www.dialektika.co m Перед вами одна из самых простых книг, посвященных программированию. Написанная известным автором Уоллесом Вонгом, она позволит вам сделать первые шаги в освоении премудростей написания программ. Вы узнаете, что такое язык программирования, и какие языки программирования наиболее популярны на сегодняшний день. Отельные части книги посвящены использованию языка программирования BASIC, использованию различных структур данных, а также программированию для Internet. Книга рассчитана па пользователей с начальным уровнем подготовки. Легкий и доступный стиль изложения поможет новичкам как можно быстрее приступить к созданию собственных программ.
в продаже V I S U A L C + + . N E T Майкл Арнсон
Visual C++ |
Последнее изменение этой страницы: 2019-04-19; Просмотров: 223; Нарушение авторского права страницы