Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лафоре Р. - Объектно-ориентированное программир...doc
Скачиваний:
153
Добавлен:
01.04.2025
Размер:
41 Мб
Скачать
☆

Отладка указателей 467

Резюме 467

Вопросы 469

Упражнения 471

Глава 11. Виртуальные функции 476

Виртуальные функции 476

Доступ к обычным методам через указатели 477

Доступ к виртуальным методам через указатели 479

Позднее связывание 481

Абстрактные классы и чистые виртуальные функции 481

Виртуальные функции и класс person 483

Виртуальные функции в графическом примере 485

Виртуальные деструкторы 488

Виртуальные базовые классы 489

Дружественные функции 491

Дружественные функции как мосты между классами 491

Ломая стены 492

Пример с английскими мерами длины 493

Дружественность и функциональная запись 496

Дружественные классы 499

Статические функции 500

Доступ к статическим функциям 501

Инициализация копирования и присваивания 502

Перегрузка оператора присваивания 503

Конструктор копирования 506

Объектные диаграммы UML 510

Эффективное использование памяти классом String 510

Указатель this 516

Доступ к компонентным данным через указатель this 517

Использование this для возврата значений 518

Исправленная программа STRIMEM 520

Динамическая информация о типах 523

Проверка типа класса с помощью dynamic_cast 523

Изменение типов указателей с помощью dynamic_cast 524

Оператор typeid 526

Резюме 527

Вопросы 528

Упражнения 531

Глава 12. Потоки и файлы 536

Потоковые классы 536

Преимущества потоков 537

Иерархия потоковых классов 537

Класс ios 539

Класс istream 542

Класс ostream 543

Классы iostream и _withassign 544

Предопределенные потоковые объекты 544

Ошибки потоков 545

Биты статуса ошибки 545

Ввод чисел 546

Переизбыток символов 547

Ввод при отсутствии данных 547

Ввод строк и символов 548

Отладка примера с английскими расстояниями 548

Потоковый ввод/вывод дисковых файлов 551

Форматированный файловый ввод/вывод 551

Строки с пробелами 554

Ввод/вывод символов 555

Двоичный ввод/вывод 557

Оператор reinterpret_cast 558

Закрытие файлов 558

Объектный ввод/вывод 559

Совместимость структур данных 560

Ввод/вывод множества объектов 561

Биты режимов 563

Указатели файлов 564

Вычисление позиции 564

Вычисление сдвига 565

Функция tellg() 567

Обработка ошибок файлового ввода/вывода 567

Реагирование на ошибки 567

Анализ ошибок 568

Файловый ввод/вывод с помощью методов 570

Как объекты записывают и читают сами себя 570

Как классы записывают и читают сами себя 572

Код типа объекта 578

Перегрузка операторов извлечения и вставки 581

Перегрузка cout и cin 581

Перегрузка << и >> для файлов 583

Память как поток 585

Аргументы командной строки 586

Вывод на печатающее устройство 589

Резюме 590

Вопросы 591

Упражнения 592

Глава 13. Многофайловые программы 596

Причины использования многофайловых программ 596

Библиотеки классов 597

Организация и концептуализация 598

Создание многофайловой программы 598

Заголовочные файлы 599

Директории 599

Проекты 600

Межфайловое взаимодействие 600

Взаимодействие исходных файлов 600