C++ forum
Четверг, 30.01.2025, 10:46
Главная Регистрация RSS
Приветствую Вас, Гость
Меню
Категории раздела
Tak.ru
Поиск
Статистика

Онлайн всего: 2
Гостей: 2
Пользователей: 0
Форма входа
Мини-чат
Друзья Сайта
ТОП САЙТОВ
Главная » Файлы » Книги

Книга Липпман c++
[ Скачать с сервера (5.15 Mb) ] 08.11.2012, 13:31
Хорошая книга для новичков.От элементарных до сложных задач.
1.НАЧИНАЕМ......................................................................................................................... 22
1.1.РЕШЕНИЕ ЗАДАЧИ......................................................................................................... 22
1.2.ПРОГРАММА НА ЯЗЫКЕC++......................................................................................... 23
1.2.1.Порядок выполнения инструкций................................................................... 28
1.3.ДИРЕКТИВЫ ПРЕПРОЦЕССОРА...................................................................................... 30
1.4.НЕМНОГО О КОММЕНТАРИЯХ......................................................................................... 33
1.5.ПЕРВЫЙ ВЗГЛЯД НА ВВОД/ВЫВОД................................................................................ 35
1.5.1.Файловый ввод/вывод........................................................................................ 37
2.КРАТКИЙ ОБЗОР С++..................................................................................................... 39
2.1.ВСТРОЕННЫЙ ТИП ДАННЫХ"МАССИВ”.......................................................................... 39
2.2.ДИНАМИЧЕСКОЕ ВЫДЕЛЕНИЕ ПАМЯТИ И УКАЗАТЕЛИ................................................... 42
2.3.ОБЪЕКТНЫЙ ПОДХОД.................................................................................................... 45
2.4.ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ ПОДХОД................................................................... 55
2.5.ИСПОЛЬЗОВАНИЕ ШАБЛОНОВ....................................................................................... 64
2.6.ИСПОЛЬЗОВАНИЕ ИСКЛЮЧЕНИЙ................................................................................... 70
2.7.ИСПОЛЬЗОВАНИЕ ПРОСТРАНСТВА ИМЕН...................................................................... 73
2.8.СТАНДАРТНЫЙ МАССИВ–ЭТО ВЕКТОР........................................................................ 77
3.ТИПЫ ДАННЫХ С++........................................................................................................ 84
3.1.ЛИТЕРАЛЫ..................................................................................................................... 84
3.2.ПЕРЕМЕННЫЕ................................................................................................................ 87
3.2.1.Что такое переменная..................................................................................... 89
3.2.2.Имя переменной.................................................................................................. 91
3.2.3.Определение объекта...................................................................................... 92
3.3.УКАЗАТЕЛИ.................................................................................................................... 95
3.4.СТРОКОВЫЕ ТИПЫ...................................................................................................... 100
3.4.1.Встроенный строковый тип......................................................................... 100
3.4.2.Классstring......................................................................................................... 103
3.5.СПЕЦИФИКАТОРCONST............................................................................................... 108
3.6.ССЫЛОЧНЫЙ ТИП........................................................................................................ 112
3.7.ТИПBOOL..................................................................................................................... 116
3.8.ПЕРЕЧИСЛЕНИЯ........................................................................................................... 117
3.9.ТИП"МАССИВ”.............................................................................................................. 120
3.9.1.Многомерные массивы.................................................................................... 124
3.9.2.Взаимосвязь массивов и указателей........................................................... 125
3.10.КЛАССVECTOR.......................................................................................................... 128
3.11.КЛАССCOMPLEX........................................................................................................ 131
3.12.ДИРЕКТИВАTYPEDEF................................................................................................ 132
3.13.СПЕЦИФИКАТОРVOLATILE........................................................................................ 134
3.14.КЛАССPAIR................................................................................................................. 134
3.15.ТИПЫ КЛАССОВ......................................................................................................... 135
4.ВЫРАЖЕНИЯ................................................................................................................... 146
4.1. ЧТО ТАКОЕ ВЫРАЖЕНИЕ?............................................................................................ 146
4.2.АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ.................................................................................... 147
4.3.ОПЕРАЦИИ СРАВНЕНИЯ И ЛОГИЧЕСКИЕ ОПЕРАЦИИ.................................................. 150
4.4.ОПЕРАЦИИ ПРИСВАИВАНИЯ........................................................................................ 153
4.5.ОПЕРАЦИИ ИНКРЕМЕНТА И ДЕКРЕМЕНТА................................................................... 158
4.6.ОПЕРАЦИИ С КОМПЛЕКСНЫМИ ЧИСЛАМИ................................................................... 159
4.7.УСЛОВНОЕ ВЫРАЖЕНИЕ.............................................................................................. 163
4.8.ОПЕРАТОРSIZEOF........................................................................................................ 164
4.9.ОПЕРАТОРЫNEWИDELETE........................................................................................ 167
4.10.ОПЕРАТОР"ЗАПЯТАЯ”................................................................................................ 168
4.11.ПОБИТОВЫЕ ОПЕРАТОРЫ......................................................................................... 169
4.12.КЛАССBITSET............................................................................................................ 172
4.13.ПРИОРИТЕТЫ............................................................................................................ 176
4.14.ПРЕОБРАЗОВАНИЯ ТИПОВ......................................................................................... 180
4.14.1.Неявное преобразование типов................................................................. 181
4.14.2.Арифметические преобразования типов................................................ 182
4.14.3.Явное преобразование типов...................................................................... 184
4.14.4.Устаревшая форма явного преобразования........................................... 187
4.15.ПРИМЕР: РЕАЛИЗАЦИЯ КЛАССАSTACK.................................................................... 189
5.ИНСТРУКЦИИ.................................................................................................................. 193
5.1.ПРОСТЫЕ И СОСТАВНЫЕ ИНСТРУКЦИИ...................................................................... 193
5.2.ИНСТРУКЦИИ ОБЪЯВЛЕНИЯ........................................................................................ 194
5.3.ИНСТРУКЦИЯIF........................................................................................................... 197
5.4.ИНСТРУКЦИЯSWITCH.................................................................................................. 206
5.5.ИНСТРУКЦИЯ ЦИКЛАFOR............................................................................................ 214
5.6.ИНСТРУКЦИЯWHILE.................................................................................................... 218
5.8.ИНСТРУКЦИЯDO WHILE.............................................................................................. 221
5.8.ИНСТРУКЦИЯBREAK.................................................................................................... 222
5.9.ИНСТРУКЦИЯCONTINUE.............................................................................................. 224
5.10.ИНСТРУКЦИЯGOTO................................................................................................... 224
5.11.ПРИМЕР СВЯЗАННОГО СПИСКА................................................................................. 226
5.11.1.Обобщенный список....................................................................................... 246
6.АБСТРАКТНЫЕ КОНТЕЙНЕРНЫЕ ТИПЫ................................................................. 253
6.1.СИСТЕМА ТЕКСТОВОГО ПОИСКА................................................................................. 253
6.2.ВЕКТОР ИЛИ СПИСОК?................................................................................................ 256
6.3.КАК РАСТЕТ ВЕКТОР?.................................................................................................. 258
6.4.КАК ОПРЕДЕЛИТЬ ПОСЛЕДОВАТЕЛЬНЫЙ КОНТЕЙНЕР?.............................................. 261
6.5.ИТЕРАТОРЫ................................................................................................................. 266
6.6.ОПЕРАЦИИ С ПОСЛЕДОВАТЕЛЬНЫМИ КОНТЕЙНЕРАМИ.............................................. 270
6.6.1.Удаление............................................................................................................. 272
6.6.2.Присваивание и обмен..................................................................................... 273
6.6.3.Обобщенные алгоритмы............................................................................... 273
6.7.ЧИТАЕМ ТЕКСТОВЫЙ ФАЙЛ......................................................................................... 275
6.8.ВЫДЕЛЯЕМ СЛОВА В СТРОКЕ...................................................................................... 278
6.9.ОБРАБАТЫВАЕМ ЗНАКИ ПРЕПИНАНИЯ........................................................................ 284
6.10.ПРИВОДИМ СЛОВА К СТАНДАРТНОЙ ФОРМЕ............................................................ 287
6.11.ДОПОЛНИТЕЛЬНЫЕ ОПЕРАЦИИ СО СТРОКАМИ........................................................ 290
6.12.СТРОИМ ОТОБРАЖЕНИЕ ПОЗИЦИЙ СЛОВ................................................................. 297
6.12.1.Определение объектаmapи заполнение его элементами.................. 297
6.12.2.Поиск и извлечение элемента отображения.......................................... 302
6.12.3.Навигация по элементам отображения.................................................. 303
6.12.4.Словарь............................................................................................................ 304
6.12.5.Удаление элементовmap............................................................................ 306
6.13.ПОСТРОЕНИЕ НАБОРА СТОП-СЛОВ.......................................................................... 307
6.13.1.Определение объектаsetизаполнениеегоэлементами................... 307
6.13.2.Поиск элемента............................................................................................. 309
6.13.3.Навигация по множеству............................................................................. 309
6.14.ОКОНЧАТЕЛЬНАЯ ПРОГРАММА.................................................................................. 310
6.15.КОНТЕЙНЕРЫMULTIMAPИMULTISET........................................................................ 313
6.16.СТЕК........................................................................................................................... 316
6.17.ОЧЕРЕДЬ И ОЧЕРЕДЬ С ПРИОРИТЕТАМИ................................................................... 318
6.18.ВЕРНЕМСЯ В КЛАССУISTACK.................................................................................... 319
7.ФУНКЦИИ......................................................................................................................... 323
7.1.ВВЕДЕНИЕ.................................................................................................................... 323
7.2.ПРОТОТИП ФУНКЦИИ................................................................................................... 326
7.2.1.Тип возвращаемого функцией значения..................................................... 326
7.2.2.Список параметров функции......................................................................... 327
7.2.3.Проверка типов формальных параметров................................................ 328
7.3.ПЕРЕДАЧА АРГУМЕНТОВ............................................................................................. 330
7.3.1.Параметры-ссылки.......................................................................................... 332
7.3.2.Параметры-ссылки и параметры-указатели........................................... 335
7.3.3.Параметры-массивы....................................................................................... 338
7.3.4.Абстрактные контейнерные типы в качестве параметров............... 341
7.3.5.Значения параметров по умолчанию.......................................................... 343
7.3.6.Многоточие....................................................................................................... 345
7.4.ВОЗВРАТ ЗНАЧЕНИЯ.................................................................................................... 348
7.4.1.Передача данных через параметры и через глобальные объекты..... 352
7.5.РЕКУРСИЯ.................................................................................................................... 354
7.6.ВСТРОЕННЫЕ ФУНКЦИИ.............................................................................................. 355
7.7.ДИРЕКТИВА СВЯЗЫВАНИЯEXTERN"C"A ................................................................... 356
7.8.ФУНКЦИЯMAIN():РАЗБОР ПАРАМЕТРОВ КОМАНДНОЙ СТРОКИ................................. 359
7.8.1.Класс для обработки параметров командной строки............................ 366
7.9.УКАЗАТЕЛИ НА ФУНКЦИИ............................................................................................. 368
7.9.1.Тип указателя на функцию............................................................................ 369
7.9.2.Инициализация и присваивание.................................................................... 370
7.9.3.Вызов................................................................................................................... 371
7.9.4.Массивыуказателейнафункции................................................................. 372
7.9.5.Параметры и тип возврата......................................................................... 373
7.9.6.Указатели на функции, объявленные какextern "C".................................. 376
8.ОБЛАСТЬ ВИДИМОСТИ И ВРЕМЯ ЖИЗНИ.............................................................. 379
8.1.ОБЛАСТЬ ВИДИМОСТИ................................................................................................ 379
8.1.1.Локальная область видимости.................................................................... 381
8.2.ГЛОБАЛЬНЫЕ ОБЪЕКТЫ И ФУНКЦИИ............................................................................ 384
8.2.1.Объявления и определения............................................................................ 384
8.2.2.Сопоставление объявлений в разных файлах............................................ 386
8.2.3.Несколько слов о заголовочных файлах...................................................... 387
8.3.ЛОКАЛЬНЫЕ ОБЪЕКТЫ................................................................................................ 390
8.3.1.Автоматические объекты............................................................................. 391
8.3.2.Регистровые автоматические объекты.................................................. 392
8.3.3.Статические локальные объекты.............................................................. 392
8.4.ДИНАМИЧЕСКИ РАЗМЕЩАЕМЫЕ ОБЪЕКТЫ.................................................................. 394
8.4.1.Динамическое создание и уничтожение единичных объектов.............. 395
8.4.2.Шаблонauto_ptrА............................................................................................. 398
8.4.3.Динамическое создание и уничтожение массивов................................... 402
8.4.4.Динамическое создание и уничтожение константных объектов........ 405
8.4.5.Оператор размещенияnewА....................................................................... 405
8.5.ОПРЕДЕЛЕНИЯ ПРОСТРАНСТВА ИМЕНА.................................................................... 408
8.5.1.Определения пространства имен............................................................... 410
8.5.2.Оператор разрешения области видимости............................................. 412
8.5.3.Вложенные пространства имен................................................................... 414
8.5.4.Определение члена пространства имен.................................................... 416
8.5.5.ПОО и члены пространства имен............................................................... 418
8.5.6.Безымянные пространства имен................................................................ 420
8.6.ИСПОЛЬЗОВАНИЕ ЧЛЕНОВ ПРОСТРАНСТВА ИМЕНА.................................................. 422
8.6.1.Псевдонимы пространства имен................................................................. 422
8.6.2. Using-объявления............................................................................................. 424
8.6.3. Using-директивы.............................................................................................. 425
8.6.4.Стандартное пространство именstd....................................................... 428
9.ПЕРЕГРУЖЕННЫЕ ФУНКЦИИ..................................................................................... 431
9.1.ОБЪЯВЛЕНИЯ ПЕРЕГРУЖЕННЫХ ФУНКЦИЙ................................................................ 431
9.1.1.Зачем нужно перегружать имя функции.................................................... 431
9.1.2.Как перегрузить имя функции...................................................................... 432
9.1.3.Когда не надо перегружать имя функции.................................................. 434
9.1.4.Перегрузка и область видимостиA ............................................................ 436
9.1.5.Директиваextern "C"и перегруженные функцииA .................................. 440
9.1.6.Указатели на перегруженные функцииA ................................................... 440
9.1.7.Безопасное связываниеA ............................................................................... 441
9.2.ТРИ ШАГА РАЗРЕШЕНИЯ ПЕРЕГРУЗКИ......................................................................... 443
9.3.ПРЕОБРАЗОВАНИЯ ТИПОВ АРГУМЕНТОВA ................................................................ 445
9.3.1.Подробнее о точном соответствии.......................................................... 447
9.3.2.Подробнее о расширении типов................................................................... 452
9.3.3.Подробнее о стандартном преобразовании............................................. 454
9.3.4.Ссылки................................................................................................................ 458
9.4.ДЕТАЛИ РАЗРЕШЕНИЯ ПЕРЕГРУЗКИ ФУНКЦИЙ............................................................ 461
9.4.1.Функции-кандидаты......................................................................................... 461
9.4.2.Устоявшие функции........................................................................................ 466
9.4.3.Наилучшая из устоявших функция.............................................................. 468
9.4.4.Аргументысозначениямипоумолчанию.................................................. 473
10.ШАБЛОНЫ ФУНКЦИЙ................................................................................................. 475
10.1.ОПРЕДЕЛЕНИЕ ШАБЛОНА ФУНКЦИИ......................................................................... 475
10.2.КОНКРЕТИЗАЦИЯ ШАБЛОНА ФУНКЦИИ...................................................................... 483
10.3.ВЫВОД АРГУМЕНТОВ ШАБЛОНАА............................................................................ 485
10.4.ЯВНОЕ ЗАДАНИЕ АРГУМЕНТОВ ШАБЛОНАA.............................................................. 490
10.5.МОДЕЛИ КОМПИЛЯЦИИ ШАБЛОНОВА...................................................................... 494
10.5.1.Модель компиляции с включением............................................................. 494
10.5.2.Модель компиляции с разделением............................................................ 495
10.5.3.Явные объявления конкретизации............................................................. 497
10.6.ЯВНАЯ СПЕЦИАЛИЗАЦИЯ ШАБЛОНАА....................................................................... 498
10.7.ПЕРЕГРУЗКА ШАБЛОНОВ ФУНКЦИЙА....................................................................... 503
10.8.РАЗРЕШЕНИЕ ПЕРЕГРУЗКИ ПРИ КОНКРЕТИЗАЦИИA................................................ 506
10.9.РАЗРЕШЕНИЕ ИМЕН В ОПРЕДЕЛЕНИЯХ ШАБЛОНОВА............................................. 514
10.10.ПРОСТРАНСТВА ИМЕН И ШАБЛОНЫ ФУНКЦИЙА................................................... 520
10.11.ПРИМЕР ШАБЛОНА ФУНКЦИИ.................................................................................. 525
11.ОБРАБОТКА ИСКЛЮЧЕНИЙ..................................................................................... 529
11.1.ВОЗБУЖДЕНИЕ ИСКЛЮЧЕНИЯ................................................................................... 529
11.2.TRY-БЛОК................................................................................................................... 532
11.3.ПЕРЕХВАТ ИСКЛЮЧЕНИЙ.......................................................................................... 536
11.3.1.Объекты-исключения.................................................................................... 537
11.3.2.Раскрутка стека............................................................................................ 540
11.3.3.Повторное возбуждение исключения........................................................ 541
11.3.4.Перехват всех исключений.......................................................................... 542
11.4.СПЕЦИФИКАЦИИ ИСКЛЮЧЕНИЙ................................................................................ 544
11.4.1.Спецификации исключений и указатели на функции.............................. 547
11.5.ИСКЛЮЧЕНИЯ И ВОПРОСЫ ПРОЕКТИРОВАНИЯ........................................................ 548
12.ОБОБЩЕННЫЕ АЛГОРИТМЫ.................................................................................. 551
12.1.КРАТКИЙ ОБЗОР........................................................................................................ 551
12.2.ИСПОЛЬЗОВАНИЕ ОБОБЩЕННЫХ АЛГОРИТМОВ....................................................... 555
12.3.ОБЪЕКТЫ-ФУНКЦИИ................................................................................................... 564
12.3.1.Предопределенные объекты-функции...................................................... 566
12.3.2.Арифметические объекты-функции.......................................................... 568
12.3.3.Сравнительные объекты-функции............................................................. 569
12.3.4.Логические объекты-функции..................................................................... 570
12.3.5.Адаптеры функций для объектов-функций............................................. 571
12.3.6.Реализация объекта-функции.................................................................... 571
12.4.ЕЩЕ РАЗ ОБ ИТЕРАТОРАХ......................................................................................... 573
12.4.1.Итераторы вставки..................................................................................... 574
12.4.2.Обратные итераторы.................................................................................. 576
12.4.3.Потоковые итераторы............................................................................... 576
12.4.4.Итераторistream_iterator ............................................................................. 577
12.4.5.Итераторostream_iterator........................................................................... 578
12.4.6.Пять категорий итераторов.................................................................... 580
12.5.ОБОБЩЕННЫЕ АЛГОРИТМЫ...................................................................................... 581
12.5.1.Алгоритмы поиска......................................................................................... 583
12.5.2.Алгоритмы сортировки и упорядочения.................................................. 583
12.5.3.Алгоритмы удаления и подстановки......................................................... 584
12.5.4.Алгоритмы перестановки............................................................................ 584
12.5.5.Численные алгоритмы................................................................................... 584
12.5.6.Алгоритмы генерирования и модификации.............................................. 584
12.5.7.Алгоритмы сравнения................................................................................... 584
12.5.8.Алгоритмы работы с множествами.......................................................... 585
12.5.9.Алгоритмы работы с хипом......................................................................... 585
12.6. КОГДА НЕЛЬЗЯ ИСПОЛЬЗОВАТЬ ОБОБЩЕННЫЕ АЛГОРИТМЫ............................. 585
12.6.1.Операцияlist_merge()..................................................................................... 586
12.6.2.Операцияlist::remove() .................................................................................... 587
12.6.3.Операцияlist::remove_if() ............................................................................... 587
12.6.4.Операцияlist::reverse()................................................................................... 587
12.6.5.Операцияlist::sort()......................................................................................... 588
12.6.6.Операцияlist::splice()...................................................................................... 588
12.6.7.Операцияlist::unique().................................................................................... 589
13.КЛАССЫ......................................................................................................................... 592
13.1.ОПРЕДЕЛЕНИЕ КЛАССА.............................................................................................. 592
13.1.1.Данные-члены................................................................................................. 593
13.1.2.Функции-члены................................................................................................ 594
13.1.3.Доступ к членам............................................................................................. 596
13.1.4.Друзья............................................................................................................... 597
13.1.5.Объявление и определение класса............................................................ 598
13.2.ОБЪЕКТЫ КЛАССОВ................................................................................................... 599
13.3.ФУНКЦИИ-ЧЛЕНЫ КЛАССА......................................................................................... 602
13.3.1.Когда использовать встроенные функции-члены.................................. 603
13.3.2.Доступ к членам класса................................................................................. 604
13.3.3.Закрытыеиоткрытыефункции-члены................................................... 605
13.3.4.Специальные функции-члены...................................................................... 608
13.3.5.Функции-члены со спецификаторамиconstиvolatile............................. 609
13.3.6.Объявлениеmutable....................................................................................... 612
13.4.НЕЯВНЫЙ УКАЗАТЕЛЬTHIS....................................................................................... 614
13.4.1.Когда использовать указательthis........................................................... 616
13.5.СТАТИЧЕСКИЕ ЧЛЕНЫ КЛАССА.................................................................................. 618
13.5.1.Статические функции-члены..................................................................... 623
13.6.УКАЗАТЕЛЬ НА ЧЛЕН КЛАССА.................................................................................... 625
13.6.1.Тип члена класса............................................................................................ 628
13.6.2.Работа с указателями на члены класса.................................................... 630
13.6.3. Указатели на статические члены класса................................................ 633
13.7.ОБЪЕДИНЕНИЕ–КЛАСС, ЭКОНОМЯЩИЙ ПАМЯТЬ................................................... 635
13.8.БИТОВОЕ ПОЛЕ–ЧЛЕН, ЭКОНОМЯЩИЙ ПАМЯТЬ..................................................... 640
13.9.ОБЛАСТЬ ВИДИМОСТИ КЛАССАA ............................................................................. 642
13.9.1.Разрешение имен в области видимости класса.................................... 646
13.10.ВЛОЖЕННЫЕ КЛАССЫA ......................................................................................... 649
13.10.1.Разрешение имен в области видимости вложенного класса........... 656
13.11.КЛАССЫ КАК ЧЛЕНЫ ПРОСТРАНСТВА ИМЕНA........................................................ 659
13.12.ЛОКАЛЬНЫЕ КЛАССЫA........................................................................................... 663
14.ИНИЦИАЛИЗАЦИЯ, ПРИСВАИВАНИЕ И УНИЧТОЖЕНИЕ КЛАССА.................. 665
14.1.ИНИЦИАЛИЗАЦИЯ КЛАССА........................................................................................ 665
14.2.КОНСТРУКТОР КЛАССА.............................................................................................. 667
14.2.1.Конструктор по умолчанию........................................................................ 673
14.2.2.Ограничение прав на создание объекта.................................................... 675
14.2.3.Копирующий конструктор........................................................................... 676
14.3.ДЕСТРУКТОР КЛАССА................................................................................................ 678
14.3.1.Явный вызов деструктора.......................................................................... 682
14.3.2.Опасность увеличения размера программы........................................... 683
14.4.МАССИВЫ И ВЕКТОРЫ ОБЪЕКТОВ............................................................................ 684
14.4.1.Инициализация массива, распределенного из хипаA ............................ 686
14.4.2.Вектор объектов........................................................................................... 689
14.5.СПИСОК ИНИЦИАЛИЗАЦИИ ЧЛЕНОВ.......................................................................... 691
14.6.ПОЧЛЕННАЯ ИНИЦИАЛИЗАЦИЯA.............................................................................. 698
14.6.1.Инициализация члена, являющегося объектом класса........................ 701
14.7.ПОЧЛЕННОЕ ПРИСВАИВАНИЕA................................................................................ 704
14.8.СООБРАЖЕНИЯ ЭФФЕКТИВНОСТИA ........................................................................ 707
15.ПЕРЕГРУЖЕННЫЕ ОПЕРАТОРЫ И ОПРЕДЕЛЕННЫЕ ПОЛЬЗОВАТЕЛЕМ
ПРЕОБРАЗОВАНИЯ........................................................................................................... 714
15.1.ПЕРЕГРУЗКА ОПЕРАТОРОВ....................................................................................... 714
15.1.1.Членыине членыкласса.............................................................................. 718
15.1.2.Имена перегруженных операторов........................................................... 721
15.1.3.Разработка перегруженных операторов................................................. 722
15.2.ДРУЗЬЯ....................................................................................................................... 724
15.3.ОПЕРАТОР=.............................................................................................................. 727
15.4.ОПЕРАТОР ВЗЯТИЯ ИНДЕКСА.................................................................................... 730
15.5.ОПЕРАТОР ВЫЗОВА ФУНКЦИИ.................................................................................. 731
15.6.ОПЕРАТОР"СТРЕЛКА”............................................................................................... 732
15.7.ОПЕРАТОРЫ ИНКРЕМЕНТА И ДЕКРЕМЕНТА............................................................... 734
15.8.ОПЕРАТОРЫNEWИDELETE..................................................................................... 738
15.8.1.Операторыnew[ ]иdelete [ ]....................................................................... 742
15.8.2.Оператор размещенияnew()иоператорdelete().................................. 744
15.9.ОПРЕДЕЛЕННЫЕ ПОЛЬЗОВАТЕЛЕМ ПРЕОБРАЗОВАНИЯ........................................... 747
15.9.1.Конвертеры..................................................................................................... 751
15.9.2.Конструктор как конвертер....................................................................... 755
15.10.ВЫБОР ПРЕОБРАЗОВАНИЯA.................................................................................. 757
15.10.1.Еще раз о разрешении перегрузки функций.......................................... 761
15.10.2.Функции-кандидаты.................................................................................... 761
15.10.3.Функции-кандидаты для вызова функции в области видимости класса
......................................................................................................................................... 763
15.10.4.Ранжирование последовательностей определенных пользователем
преобразований........................................................................................................... 765
15.11.РАЗРЕШЕНИЕ ПЕРЕГРУЗКИ И ФУНКЦИИ-ЧЛЕНЫA.................................................. 770
15.11.1.Объявления перегруженных функций-членов........................................ 770
15.11.2.Функции-кандидаты...................................................................................... 771
15.11.3.Устоявшие функции.................................................................................... 772
15.12.РАЗРЕШЕНИЕ ПЕРЕГРУЗКИ И ОПЕРАТОРЫA ......................................................... 775
15.12.1.Операторные функции-кандидаты......................................................... 776
15.12.2.Устоявшие функции.................................................................................... 780
15.12.3.Неоднозначность......................................................................................... 781
16.ШАБЛОНЫ КЛАССОВ................................................................................................. 784
16.1.ОПРЕДЕЛЕНИЕ ШАБЛОНА КЛАССА............................................................................ 784
16.1.1.Определения шаблонов классовQueueиQueueItem............................. 790
16.2.КОНКРЕТИЗАЦИЯ ШАБЛОНА КЛАССА......................................................................... 793
16.2.1.Аргументы шаблона для параметров-констант.................................. 797
16.3.ФУНКЦИИ-ЧЛЕНЫ ШАБЛОНОВ КЛАССОВ................................................................... 802
16.3.1.Функции-члены шаблоновQueueиQueueItem......................................... 803
16.4.ОБЪЯВЛЕНИЯ ДРУЗЕЙ В ШАБЛОНАХ КЛАССОВ......................................................... 806
16.4.1.Объявления друзей в шаблонахQueueиQueueItem.............................. 808
16.5.СТАТИЧЕСКИЕ ЧЛЕНЫ ШАБЛОНОВ КЛАССА.............................................................. 812
16.6.ВЛОЖЕННЫЕ ТИПЫ ШАБЛОНОВ КЛАССОВ................................................................ 814
16.7.ШАБЛОНЫ-ЧЛЕНЫ..................................................................................................... 817
16.8.ШАБЛОНЫ КЛАССОВ И МОДЕЛЬ КОМПИЛЯЦИИA..................................................... 822
16.8.1.Модель компиляции с включением.............................................................. 824
16.8.2.Модель компиляции с разделением............................................................ 825
16.8.3.Явные объявления конкретизации.............................................................. 828
16.9.СПЕЦИАЛИЗАЦИИ ШАБЛОНОВ КЛАССОВA ............................................................... 829
16.10.ЧАСТИЧНЫЕ СПЕЦИАЛИЗАЦИИ ШАБЛОНОВ КЛАССОВA ........................................ 833
16.11.РАЗРЕШЕНИЕ ИМЕН В ШАБЛОНАХ КЛАССОВA....................................................... 834
16.12.ПРОСТРАНСТВА ИМЕН И ШАБЛОНЫ КЛАССОВ........................................................ 837
16.13.ШАБЛОН КЛАССАARRAY......................................................................................... 839
17.НАСЛЕДОВАНИЕ И ПОДТИПИЗАЦИЯ КЛАССОВ................................................. 849
17.1.ОПРЕДЕЛЕНИЕ ИЕРАРХИИ КЛАССОВ........................................................................ 852
17.1.1.Объектно-ориентированное проектирование....................................... 855
17.2.ИДЕНТИФИКАЦИЯ ЧЛЕНОВ ИЕРАРХИИ...................................................................... 860
17.2.1.Определение базового класса..................................................................... 860
17.2.2.Определение производных классов............................................................ 865
17.2.3.Резюме.............................................................................................................. 868
17.3.ДОСТУП К ЧЛЕНАМ БАЗОВОГО КЛАССА..................................................................... 870
17.4.КОНСТРУИРОВАНИЕ БАЗОВОГО И ПРОИЗВОДНОГО КЛАССОВ................................. 878
17.4.1.Конструктор базового класса.................................................................... 880
17.4.2.Конструктор производного класса............................................................ 881
17.4.3.Альтернативная иерархия классов.......................................................... 883
17.4.4.Отложенное обнаружение ошибок............................................................ 885
17.4.5.Деструкторы.................................................................................................. 886
17.5.ВИРТУАЛЬНЫЕ ФУНКЦИИ В БАЗОВОМ И ПРОИЗВОДНОМ КЛАССАХ.......................... 889
17.5.1.Виртуальный ввод/вывод............................................................................. 890
17.5.2.Чисто виртуальные функции..................................................................... 896
17.5.3.Статический вызов виртуальной функции............................................. 898
17.5.4.Виртуальные функции и аргументы по умолчанию.............................. 900
17.5.5.Виртуальные деструкторы........................................................................ 902
17.5.6.Виртуальная функцияeval()........................................................................ 904
17.5.7.Почти виртуальный операторnew.......................................................... 908
17.5.8.Виртуальные функции, конструкторы и деструкторы...................... 910
17.6.ПОЧЛЕННАЯ ИНИЦИАЛИЗАЦИЯ И ПРИСВАИВАНИЕA................................................ 913
17.7.УПРАВЛЯЮЩИЙ КЛАССUSERQUERY........................................................................ 918
17.7.1.Определение классаUserQuery................................................................... 922
17.8.СОБЕРЕМ ВСЕ ВМЕСТЕ.............................................................................................. 927
18.МНОЖЕСТВЕННОЕ И ВИРТУАЛЬНОЕ НАСЛЕДОВАНИЕ................................... 934
18.1.ГОТОВИМ СЦЕНУ....................................................................................................... 934
18.2.МНОЖЕСТВЕННОЕ НАСЛЕДОВАНИЕ.......................................................................... 938
18.3.ОТКРЫТОЕ, ЗАКРЫТОЕ И ЗАЩИЩЕННОЕ НАСЛЕДОВАНИЕ....................................... 946
18.3.1.Наследование и композиция........................................................................ 948
18.3.2.Открытие отдельных членов.................................................................... 950
18.3.3.Защищенное наследование.......................................................................... 951
18.3.4.Композиция объектов................................................................................... 951
18.4.ОБЛАСТЬ ВИДИМОСТИ КЛАССА И НАСЛЕДОВАНИЕ................................................... 953
18.4.1.Область видимости класса при множественном наследовании....... 956
18.5.ВИРТУАЛЬНОЕ НАСЛЕДОВАНИЕA ............................................................................ 962
18.5.1.Объявление виртуального базового класса........................................... 964
18.5.2.Специальная семантика инициализации.................................................. 966
18.5.3.Порядок вызова конструкторов и деструкторов.................................. 969
18.5.4.Видимость членов виртуального базового класса............................... 971
18.6.ПРИМЕР МНОЖЕСТВЕННОГО ВИРТУАЛЬНОГО НАСЛЕДОВАНИЯA........................... 975
18.6.1.Порождение класса, контролирующего выход за границы массива.. 978
18.6.2.Порождение класса отсортированного массива................................... 980
18.6.3.Класс массива с множественным наследованием.................................. 986
19.ПРИМЕНЕНИЕ НАСЛЕДОВАНИЯ ВC++.................................................................. 989
19.1.ИДЕНТИФИКАЦИЯ ТИПОВ ВО ВРЕМЯ ВЫПОЛНЕНИЯ................................................. 989
19.1.1.Операторdynamic_cast................................................................................ 990
19.1.2.Операторtypeid............................................................................................. 995
19.1.3.Классtype_info................................................................................................. 997
19.2.ИСКЛЮЧЕНИЯ И НАСЛЕДОВАНИЕ............................................................................ 1001
19.2.1.Исключения, определенные как иерархии классов............................... 1001
19.2.2.Возбуждениеисключениятипакласса................................................... 1002
19.2.3.Обработка исключения типа класса...................................................... 1003
19.2.4.Объекты-исключения и виртуальные функции.................................... 1006
19.2.5.Раскрутка стека и вызов деструкторов............................................... 1008
19.2.6.Спецификации исключений........................................................................ 1009
19.2.7.Конструкторы и функциональныеtry-блоки.......................................... 1012
19.2.8.Иерархия классов исключений в стандартной библиотекеC++..... 1014
19.3.РАЗРЕШЕНИЕ ПЕРЕГРУЗКИ И НАСЛЕДОВАНИЕA.................................................... 1018
19.3.1.Функции-кандидаты..................................................................................... 1019
19.3.2.Устоявшие функции и последовательности пользовательских
преобразований......................................................................................................... 1022
19.3.3.Наилучшая из устоявших функций.......................................................... 1024
20.БИБЛИОТЕКАIOSTREAM......................................................................................... 1028
20.1.ОПЕРАТОР ВЫВОДА<<............................................................................................ 1032
20.2.ВВОД........................................................................................................................ 1038
20.2.1.Строковый ввод........................................................................................... 1043
20.3.ДОПОЛНИТЕЛЬНЫЕ ОПЕРАТОРЫ ВВОДА/ВЫВОДА................................................. 1049
20.4.ПЕРЕГРУЗКА ОПЕРАТОРА ВЫВОДА.......................................................................... 1055
20.5.ПЕРЕГРУЗКА ОПЕРАТОРА ВВОДА............................................................................ 1059
20.6.ФАЙЛОВЫЙ ВВОД/ВЫВОД....................................................................................... 1062
20.7.СОСТОЯНИЯ ПОТОКА.............................................................................................. 1072
20.8.СТРОКОВЫЕ ПОТОКИ.............................................................................................. 1074
20.9.СОСТОЯНИЕ ФОРМАТА............................................................................................ 1078
20.10.СИЛЬНО ТИПИЗИРОВАННАЯ БИБЛИОТЕКА........................................................... 1086
21.ОБОБЩЕННЫЕ АЛГОРИТМЫ В АЛФАВИТНОМ ПОРЯДКЕ............................ 1088

Категория: Книги | Добавил: NoOb | Теги: книга, Хорошая, липпман, c++
Просмотров: 927 | Загрузок: 906 | Рейтинг: 3.5/4
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]