Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Часть 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; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.161 с.)
Главная | Случайная страница | Обратная связь