Част I. Основни средства в С и C++ 3
Глава 1. Въведение — какво може да направи
Многократно дефиниране на функции... 14
Глава 2. Основни характеристики на програмите на C/C++ 17
C++ на разбираем език
Присвояванията също са изрази . 28
Добавяне на функции към програмата ви 30
Основен синтаксис за функции 31
Пример за функция 32
Функции от тип void —.....— 33
Локални, глобални и други променливи 34
Локални променливи 34
Глобални променливи 35
Статични променливи 36
Външни променливи — 37
Забавления с управляващите структури 38
Оператор if 39
Оператор while 40
Впечатлете приятелите си със странни оператори
на C++ ..41
• Оператори за увеличаване и намаляване .41
Оператори за присвояване 42
Битови и логически оператори 43
Глава 3. Указатели, низове и други неща 47
Един по-ефективен начин за предаване на данни..47 Указатели и предаване чрез псевдоними
(предаване по стойност) — 49
Стъпки за предаване на псевдоними 50
Два примера за предаване изцяло чрез
псевдоними -51
Указатели и масиви 52
Основи на масивите 53
Циклична обработка чрез указатели 56
Символни низове в C++ ...... ;.59
Указатели и динамична памет .63
Използване на mailoc и free (С и C++).., 64
Използване на new и delete (само за C++) 66
Глава 4. Вход, изход и C++... 69
По течението — запознаване е потоците 69
Запознаване е операторите за работа с потоци
(« и ») 71
Радост от форматирането 74
Вход по редове с STDIO.H 75
Файлови операции със STDIO.H 77
Файлове и оператори за работа с потоци 81
Голямото противоречие — да използваме ли потоци, или не? . 82
Част II. Преминаване от С към C++ 85
Глава 5. Докосване до класовете. 87
Разработване на клас — по-добър тип низ 87
Функциите-членове — активността на класа 89
Фаталната точка и запетая — внимавайте за
синтаксиса! ..91
Какво все пак е обектът? -..92
Обръщение към функция-член 93
Още за функциите-членове 96
Указатели към обекти ...98
Предимства на частните данни 99
Разглеждане на реализация, използваща
динамична памет 103
Животът и смъртта на един обект — конструктори и прочие 105
Вграждане на функции за забавление и изгоди ..107
Структурите като специален вид класове 109
Класове в перспектива 110
Капсулиране 110
Класове, обекти и екземпляри 110
Класове — повторно използване й публикуване 111
Глава 6. Друг поглед върху конструкторите 113
Многократно дефиниране (overloading) — конструктории пак конструктори 113
Разглеждане на първите два конструктора 114
Запознаване с подразбиращия се конструктор — 115 Конструктор за копиране и оператор
за псевдоними (&) 117
Псевдоними — адресният оператор (&), използван
по нов начин 120
Написване на конструктора за копиране 121
Последен поглед — ключовата дума const 122
Други примери за конструктори — 123
Как C++ се обръща към конструктори
(преобразуване)? 125
Обобщение — ключови постановки
при конструкторите 126
Многократно дефинирани конструктори.... 127
Подразбиращ се конструктор 127
Конструктор за копиране .127
Инициализация и преобразуване 128
Глава 7. Операции с класове (многократно дефиниране на оператори) ;... 129
Основен синтаксис 129
Написване на операторка функция за
събиране. (+) .131
Механизъм на обръщение към операторна
функция 132
И останалите... (други функции за събиране) ..133
Кой се нуждае от приятели? 134
Написване на функция за присвояване 136
Дефиниция на функцията за присвояване 137
Указател this и използването му 138
Присвоявания и оператор за псевдоними (&) ... 140
, Писане на преобразуваща функция... 141
Обобщение за класа CStr 142
Друг пример за многократно дефиниране на оператори —......... 146
Напредване е многократното дефиниране на
оператори 148
Използване на указателя this 149
Имена на операторките функции 149
Бинарни оператори 149
Унарни оператори 150
Оператор за присвояване... 150
Присвояване на стойност от друг тип 151
Други оператори за присвояване (+=, -=, и др.) 151 Асоциативност, приоритет и комутативност 152
Глава 8. Наследяване — C++ и добрите гени 153
Връщане към CStr — софтуерна дилема 153
Син на CStr (или пък ’’дъщеря”)... 154
Синтаксис на производен клас....... 155
Написване на функции за новия клас .. ....... 156
Многократно дефиниране на функции и
определяне на областта на видимост 157
Йерархии на наследяване 159.
Без наследяване — да го направиш по трудния
начин 161
Публичен, частен и защитен достъп...... — 164
Друг пример — бързи коли и родословни
дървета- — 166
Конструктори на базовите класове — 170
Базови класове и указатели 172
Глава 9. Виртуални функции и техните предимства 175
Прилагане на ключова дума virtual 176
Кога трябва да направите една функция
виртуална? 178
Пример за меню с команди 179
Деклариране и дефиниране на базовия клас — 179
Деклариране и дефиниране на обектите 180
. Използване на обекти 181
Предимство на виртуалните команди 183
Функции без реализация (напълно виртуални
функции) 185
Как се реализират виртуалните функции? 186
Част III. Език C++ — азбучен справочник 191
Абстрактни класове 193
Абстрактни типове данни — 194
Абстракции на данни 195
Адресен оператор (&) 196
Анонимни обединения 198
Аритметика с указатели 200
Базови класове 203
Библиотечна функция printf 207
Битови оператори — 210
Битови полета 211
Булеви стойности .— 216
Виртуални базови класове 217
Виртуални функции 2 2 0
Декларации — 2 2 3
Декларации епшп .228
Декларации extern ”С” 232
Декларации extern 233
Декларации union 235
Деструктор 239
Дефиниции срещу декларации 241
Директива #if 242
Директива #ifdef 245
Директива #ifndef 246
Директива #include 247^
Директива endif — 249
Директивата #de£ine . * — 250
Директивата #elif 254
Етикети 255
Заглавни файлове 257
Идентификатори 259
Изрази 261
Именни пространства (Namespaces) 262
Информация за типа по време на изпълнение . 264
Капсулиране 266
Класове 268
Клас на съхранение... 271
Клас istream 272
Клас ostream 275
Ключови думи 279
Ключова дума auto . 280
Ключова дума case ....281
Ключова дума const 282
Ключова дума else ....287
Ключова дума friend 1288
Ключова дума private — 291
Ключова дума protected ...*.292
Ключова дума public 294
Ключова дума register .. 295
Ключова дума static '. 297
Ключова дума struct 301
Ключова дума this... 302
Ключова дума void 305
Ключова дума volatile 306
Коментари 308
Константи ... — 310
Конструктори ....312
Конструктори на базови класове 317
Леви стойности ... 330
Масиви 323
Многократно дефиниране, оператори 328
Многократно дефиниране, функции 334
Набори .335
Наследяване — .337
Неявно преобразуване на типове 339
Низови литерали 341
Обекти 343
Обект cin .345
Обект cout .347
Област на видимост 349
Обработка на изключения 350
Оператор 359
Оператор break 361
Оператор continue 362
Оператор delete 364
Оператор do 365
Оператор for ...... 366
Оператор goto 368
Оператор if 369
Оператор new .:— 372
Оператор return 374
Оператор switch 375
Оператор while — 380
Оператор за констекст/на видимост (::) 381
Оператор за остатък (%) 383
Оператор за препращане 384
Оператор за псевдоними (&) 386
Оператор модул (%).. — 390
Оператори 391
Оператори typedef ....394
Подразбиращи се стойности на аргументи 398
Полиморфизъм 401
Празни оператори ; 402
Преобразуване на тип cast 403
Примитивни типове данни 404
Присвоявания . 405
Производни класове 406
Променливи списъци с аргументи 407
Съвместимост между С и C++ 409
Съставни оператори 412
Типове данни 414
Тип данни char 416
Тип данни double . 418
Тип данни float 420
Тип данни int 422
Тип данни long 424
Тип данни short 425
Типове данни unsigned 426
Указатели 430
Указатели към функции 436
Условен оператор 440
Функции за вграждане 442
Функции за преобразуване 445
Функции и прототипи на функции — 447
Функция main 449
Функция scanf 451
Цикли.. 454
Шаблони 456
Явно преобразуване на типове 564