Главная страница
Навигация по странице:

  • Содержание Об авторе 15 Введение 17

  • Модуль 1. Основы C++ 21

  • Модуль 2. Типы данных и операторы 69

  • Модуль 4. Массивы, строки и указатели 157

  • Модуль 5. Введение в функции 211

  • Модуль 6. О функциях подробнее 261 6.1. Два способа передачи аргументов 262 6.2. Как в C++ реализована передача аргументов 262 10

  • Модуль 7 303 Еще о типах данных и операторах 303

  • Модуль 8. Классы и объекты 349

  • Модуль 9. О классах подробнее 397

  • Модуль 10. Наследование 465

  • Модуль 11. C++-система ввода-вывода 521

  • Приложение А. Препроцессор 639 Директива define 640Макроопределения, действующие как функции 642Директива error 644 14

  • Приложение Б. Использование устаревшего C++-компилятора 653 Два простых изменения 655Предметный указатель 656 Введение

  • Как организована эта книга

  • Тест для самоконтроля Каждый модуль завершается тестом для самоконтроля. Ответы можно найти на Web-странице этой книги по адресу: http://www.osborne.com.Вопросы для текущего контроля

  • Спросим у опытного программиста

  • Никакого предыдущего опыта в области программирования не требуется

  • Справочник по C, Полный справочник по C


    Скачать 393.9 Kb.
    НазваниеСправочник по C, Полный справочник по C
    Анкорaboba
    Дата09.07.2021
    Размер393.9 Kb.
    Формат файлаpdf
    Имя файлаcrukovodstvodlyanachinayushchih.pdf
    ТипСправочник
    #223848
    страница1 из 5
      1   2   3   4   5

    Об авторе
    Герберт Шилдт (Herbert Schildt) — признанный авторитет в области програм- мирования на языках C, C++ Java и C#, профессиональный Windows-програм- мист, член комитетов ANSI/ISO, принимавших стандарт для языков C и C++.
    Продано свыше 3 миллионов экземпляров его книг. Они переведены на все самые распространенные языки мира. Шилдт — автор таких бестселлеров, как Полный
    справочник по C, Полный справочник по C++, Полный справочник по C#, Полный
    справочник по Java 2, и многих других книг, включая: Руководство для начинаю-
    щих по C, Руководство для начинающих по C# и Руководство для начинающих по
    Java 2. Шилдт — обладатель степени магистра в области вычислительной техни- ки (университет шт. Иллинойс). Его контактный телефон (в консультационном отделе): (217) 586-4683.

    Содержание
    Об авторе
    15
    Введение 17
    Как организована эта книга
    17
    Практические навыки
    18
    Тест для самоконтроля
    18
    Вопросы для текущего контроля
    18
    Спросим у опытного программиста
    18
    Учебные проекты
    18
    Никакого предыдущего опыта в области программирования не требуется
    18
    Требуемое программное обеспечение
    19
    Программный код — из Web-пространства
    19
    Для дальнейшего изучения программирования
    19
    Модуль 1. Основы C++
    21
    1.1. Из истории создания C++
    22
    Язык C: начало эры современного программирования
    23
    Предпосылки возникновения языка C++
    24
    Рождение C++
    25
    Эволюция C++
    26 1.2. Связь C++ с языками Java и C#
    27 1.3. Объектно-ориентированное программирование
    29
    Инкапсуляция 30
    Полиморфизм 31
    Наследование 32 1.4. Создание, компиляция и выполнение C++-программ
    32
    Ввод текста программы
    34
    Компилирование программы
    34
    Выполнение программы
    35
    Построчный “разбор полетов” первого примера программы
    36
    Обработка синтаксических ошибок
    38 1.5. Использование переменных
    40 1.6. Использование операторов
    41 1.7. Считывание данных с клавиатуры
    44
    Вариации на тему вывода данных
    46
    Познакомимся еще с одним типом данных
    47 1.8. Использование инструкций управления
    if и for 52

    С++: руководство для начинающих
    7
    Инструкция if
    52
    Цикл for
    54 1.9. Использование блоков кода
    56
    Точки с запятой и расположение инструкций
    58
    Практика отступов
    59 1.10. Понятие о функциях
    62
    Библиотеки C++
    64 1.12. Ключевые слова C++
    65 1.13. Идентификаторы
    66
    Модуль 2. Типы данных и операторы
    69
    Почему типы данных столь важны
    70 2.1. Типы данных C++
    70
    Целочисленный тип
    72
    Символы 75
    Типы данных с плавающей точкой
    77
    Тип данных bool
    78
    Тип void
    80 2.2. Литералы
    83
    Шестнадцатеричные и восьмеричные литералы
    84
    Строковые литералы
    84
    Управляющие символьные последовательности
    85 2.3. Создание инициализированных переменных
    87
    Инициализация переменной
    87
    Динамическая инициализация переменных
    88
    Операторы 89 2.4. Арифметические операторы
    89
    Инкремент и декремент
    90 2.5. Операторы отношений и логические операторы
    92 2.6. Оператор присваивания
    98 2.7. Составные операторы присваивания
    99 2.8. Преобразование типов в операторах присваивания
    100
    Выражения 101 2.9. Преобразование типов в выражениях
    101
    Преобразования, связанные с типом bool
    102 2.10. Приведение типов
    102 2.11. Использование пробелов и круглых скобок
    104

    8
    Содержание
    Модуль 3. Инструкции управления
    109
    3.1. Инструкция if
    110
    Условное выражение
    112
    Вложенные if-инструкции
    114
    “Лестничная” конструкция if-else-if
    115 3.2. Инструкция switch
    117
    Вложенные инструкции switch
    121 3.3. Цикл for
    125
    Вариации на тему цикла for
    127
    Отсутствие элементов в определении цикла
    129
    Бесконечный цикл for
    130
    Циклы без тела
    131
    Объявление управляющей переменной цикла в заголовке инструкции for
    132 3.4. Цикл while
    134 3.6. Использование инструкции break для выхода из цикла
    143 3.7. Использование инструкции continue
    145 3.8. Вложенные циклы
    151 3.9. Инструкция goto
    152
    Модуль 4. Массивы, строки и указатели
    157
    4.1. Одномерные массивы
    158
    На границах массивов без пограничников
    162 4.2. Двумерные массивы
    163 4.3. Многомерные массивы
    165 4.4. Строки
    169
    Основы представления строк
    169
    Считывание строк с клавиатуры
    170 4.5. Некоторые библиотечные функции обработки строк
    173
    Функция strcpy()
    173
    Функция strcat()
    173
    Функция strcmp()
    173
    Функция strlen()
    174
    Пример использования строковых функций
    174
    Использование признака завершения строки
    175 4.6. Инициализация массивов
    177
    Инициализация “безразмерных” массивов
    180 4.7. Массивы строк
    182 4.8. Указатели
    183

    С++: руководство для начинающих
    9
    Что представляют собой указатели
    184 4.9. Операторы, используемые с указателями
    185
    О важности базового типа указателя
    186
    Присваивание значений с помощью указателей
    189 4.10. Использование указателей в выражениях
    190
    Арифметические операции над указателями
    190
    Сравнение указателей
    192 4.11. Указатели и массивы
    193
    Индексирование указателя
    196
    Строковые константы
    198
    Массивы указателей
    203
    Соглашение о нулевых указателях
    205 4.12. Многоуровневая непрямая адресация
    206
    Модуль 5. Введение в функции
    211
    Основы использования функций
    212 5.1. Общий формат C++-функций
    212 5.2. Создание функции
    213 5.3. Использование аргументов
    215 5.4. Использование инструкции return
    216
    Возврат значений
    220 5.5. Использование функций в выражениях
    222
    Правила действия областей видимости функций
    224 5.6. Локальная область видимости
    225 5.7. Глобальная область видимости
    231 5.8. Передача указателей и массивов в качестве аргументов функций
    235
    Передача функции указателя
    235
    Передача функции массива
    237
    Передача функциям строк
    240 5.9. Возвращение функциями указателей
    242
    Функция main()
    243 5.10. Передача аргументов командной строки функции main()
    244
    Передача числовых аргументов командной строки
    246 5.11. Прототипы функций
    248
    Стандартные заголовки содержат прототипы функций
    250 5.12. Рекурсия
    250
    Модуль 6. О функциях подробнее
    261
    6.1. Два способа передачи аргументов
    262 6.2. Как в C++ реализована передача аргументов
    262

    10
    Содержание
    6.3. Использование указателя для обеспечения вызова по ссылке
    264 6.4. Ссылочные параметры
    266 6.5. Возврат ссылок
    271 6.6. Независимые ссылки
    275
    Ограничения при использовании ссылок
    276 6.7. Перегрузка функций
    277
    Автоматическое преобразование типов и перегрузка
    282 6.8. Аргументы, передаваемые функции по умолчанию
    292
    Сравнение возможности передачи аргументов по умолчанию с перегрузкой функций
    294
    Об использовании аргументов, передаваемых по умолчанию
    296 6.9. Перегрузка функций и неоднозначность
    298
    Модуль 7
    303
    Еще о типах данных и операторах
    303
    7.1. Спецификаторы типа const и volatile
    304
    Спецификатор типа const
    304
    Спецификатор типа volatile
    307
    Спецификаторы классов памяти
    308
    Спецификатор класса памяти auto
    308 7.2. Спецификатор класса памяти extern
    308 7.3. Статические переменные
    310 7.4. Регистровые переменные
    315 7.5. Перечисления
    318 7.6. Ключевое слово typedef
    322 7.7. Поразрядные операторы
    322
    Поразрядные операторы И, ИЛИ, исключающее ИЛИ и НЕ
    323 7.8. Операторы сдвига
    330 7.9. Оператор “знак вопроса”
    339 7.10. Оператор “запятая”
    340 7.11. Составные операторы присваивания
    342 7.12. Использование ключевого слова sizeof
    343
    Сводная таблица приоритетов C++-операторов
    345
    Модуль 8. Классы и объекты
    349
    8.1. Общий формат объявления класса
    350 8.2. Определение класса и создание объектов
    351 8.3. Добавление в класс функций-членов
    357 8.4. Конструкторы и деструкторы
    367

    С++: руководство для начинающих
    11
    8.5. Параметризованные конструкторы
    370
    Добавление конструктора в класс Vehicle
    373
    Альтернативный вариант инициализации объекта
    374 8.6. Встраиваемые функции
    376
    Создание встраиваемых функций в объявлении класса
    378 8.7. Массивы объектов
    388 8.8. Инициализация массивов объектов
    389 8.9. Указатели на объекты
    391
    Модуль 9. О классах подробнее
    397
    9.1. Перегрузка конструкторов
    398 9.2. Присваивание объектов
    399 9.3. Передача объектов функциям
    402
    Конструкторы, деструкторы и передача объектов
    403
    Передача объектов по ссылке
    405
    Потенциальные проблемы при передаче параметров
    407 9.4. Возвращение объектов функциями
    408 9.5. Создание и использование конструктора копии
    411 9.6. Функции-“друзья”
    415 9.7. Структуры и объединения
    421
    Структуры 421
    Объединения 424 9.8. Ключевое слово this
    428 9.9. Перегрузка операторов
    430 9.10. Перегрузка операторов с использованием функций-членов
    431
    О значении порядка операндов
    435
    Использование функций-членов для перегрузки унарных операторов
    435 9.11. Перегрузка операторов с использованием функций-не членов класса
    441
    Использование функций-“друзей” для перегрузки унарных операторов
    447
    Советы по реализации перегрузки операторов
    448
    Модуль 10. Наследование
    465
    10.1. Понятие о наследовании
    466
    Доступ к членам класса и наследование
    470 10.2. Управление доступом к членам базового класса
    474 10.3. Использование защищенных членов
    477 10.4. Вызов конструкторов базового класса
    483

    12
    Содержание
    10.5. Создание многоуровневой иерархии
    493 10.6. Наследование нескольких базовых классов
    497 10.7. Когда выполняются функции конструкторов и деструкторов
    498 10.8. Указатели на производные типы
    501
    Ссылки на производные типы
    502 10.9. Виртуальные функции и полиморфизм
    502
    Понятие о виртуальной функции
    502
    Наследование виртуальных функций
    506
    Зачем нужны виртуальные функции
    507
    Применение виртуальных функций
    509 10.10. Чисто виртуальные функции и абстрактные классы
    514
    Модуль 11. C++-система ввода-вывода
    521
    Сравнение старой и новой C++-систем ввода-вывода
    522 11.1. Потоки C++
    523
    Встроенные C++-потоки
    524 11.2. Классы потоков
    524 11.3. Перегрузка операторов ввода-вывода
    526
    Создание перегруженных операторов вывода
    527
    Использование функций-“друзей” для перегрузки операторов вывода
    529
    Перегрузка операторов ввода
    530
    Форматированный ввод-вывод данных
    533 11.4. Форматирование данных с использованием функций-членов класса ios
    533 11.5. Использование манипуляторов ввода-вывода
    540 11.6. Создание собственных манипуляторных функций
    543
    Файловый ввод-вывод данных
    545 11.7. Как открыть и закрыть файл
    546 11.8. Чтение и запись текстовых файлов
    549 11.9. Неформатированный ввод-вывод данных в двоичном режиме
    551
    Считывание и запись в файл блоков данных
    554 11.10. Использование других функций ввода-вывода
    556
    Версии функции get()
    557
    Функция getline()
    558
    Функция обнаружения конца файла
    559
    Функции peek() и putback()
    559
    Функция flush()
    559

    С++: руководство для начинающих
    13
    11.11. Произвольный доступ
    565 11.12. Получение информации об операциях ввода-вывода
    568
    Модуль 12. Исключения, шаблоны и кое-что еще
    571
    12.1. Обработка исключительных ситуаций
    572
    Основы обработки исключительных ситуаций
    572
    Использование нескольких catch-инструкций
    578
    Перехват всех исключений
    581
    Определение исключений, генерируемых функциями
    583
    Повторное генерирование исключения
    585
    Шаблоны 587 12.2. Обобщенные функции
    587
    Функция с двумя обобщенными типами
    590
    Явно заданная перегрузка обобщенной функции
    591 12.3. Обобщенные классы
    594
    Явно задаваемые специализации классов
    597 12.4. Динамическое распределение памяти
    603
    Инициализация динамически выделенной памяти
    607
    Выделение памяти для массивов
    608
    Выделение памяти для объектов
    609 12.5. Пространства имен
    614
    Понятие пространства имен
    615
    Инструкция using
    619
    Неименованные пространства имен
    622
    Пространство имен std
    622 12.6. Статические члены класса
    623
    Статические члены данных класса
    623
    Статические функции-члены класса
    626 12.7. Динамическая идентификация типов (RTTI)
    628 12.8. Операторы приведения типов
    633
    Оператор dynamic_cast
    633
    Оператор const_cast
    635
    Оператор static_cast
    635
    Оператор reinterpret_cast
    635
    Приложение А. Препроцессор
    639
    Директива #define
    640
    Макроопределения, действующие как функции
    642
    Директива #error
    644

    14
    Содержание
    Директива #include
    644
    Директивы условной компиляции
    645
    Директивы #if, #else, #elif и #endif
    645
    Директивы #ifdef и #ifndef
    648
    Директива #undef
    649
    Использование оператора defined
    649
    Директива #line
    650
    Директива #pragma
    650
    Операторы препроцессора “#” и “##”
    651
    Зарезервированные макроимена
    652
    Приложение Б. Использование устаревшего C++-компилятора 653
    Два простых изменения
    655
    Предметный указатель
    656

    Введение
    Язык C++ предназначен для разработки высокопроизводительного программ- ного обеспечения и чрезвычайно популярен среди программистов. При этом он обеспечивает концептуальный фундамент (синтаксис и стиль), на который опираются другие языки программирования. Не случайно ведь потомками C++ стали такие почитаемые языки, как C# и Java. Более того, C++ можно назвать универсальным языком программирования, поскольку практически все профес- сиональные программисты на том или ином уровне знакомы с C++. Изучив C++, вы получите фундаментальные знания, которые позволят вам освоить любые аспекты современного программирования.
    Цель этой книги — помочь читателю овладеть базовыми элементами C++-про- граммирования. Сначала, например, вы узнаете, как скомпилировать и выпол- нить C++-программу, а затем шаг за шагом будете осваивать более сложные темы
    (ключевые слова, языковые конструкции, операторы и пр.). Текст книги подкре- пляется многочисленными примерами программ, тестами для самоконтроля и учебными проектами, поэтому, проработав весь материал этой книги, вы получи- те глубокое понимание основ C++-программирования.
    Я хочу подчеркнуть, что эта книга — лишь стартовая площадка. C++ — это большой (по объему средств) и не самый простой язык программирования. Не- обходимым условием успешного программирования на C++ является знание не только ключевых слов, операторов и синтаксиса, определяющего возможности языка, но и библиотек классов и функций, которые существенно помогают в раз- работке программ. И хотя некоторые элементы библиотек рассматриваются в этой книге, все же большинство из них не нашло здесь своего отражения. Чтобы стать первоклассным программистом на C++, необходимо в совершенстве изу- чить и C++-библиотеки. Знания, полученные при изучении этой книги, позволят вам освоить не только библиотеки, но и все остальные аспекты C++.
    Как организована эта книга
    Эта книга представляет собой самоучитель, материал которого равномерно распределен по разделам, причем успешное освоение каждого следующего пред- полагает знание всех предыдущих. Книга содержит 12 модулей, посвященных со- ответствующим аспектам C++. Уникальность этой книги состоит в том, что она включает несколько специальных элементов, которые позволяют закрепить уже пройденный материал.

    18
    Введение
    Практические навыки
    Все модули содержат разделы (отмеченные пиктограммой “Важно!”), которые важно не пропустить при изучении материала книги. Их значимость для после- довательного освоения подчеркивается тем, что они пронумерованы и перечис- лены в начале каждого модуля.
    Тест для самоконтроля
    Каждый модуль завершается тестом для самоконтроля. Ответы можно найти на Web-странице этой книги по адресу: http://www.osborne.com.
    Вопросы для текущего контроля
    В конце каждого значимого раздела содержится тест, проверяющий степень вашего понимания ключевых моментов, изложенных выше. Ответы на эти во- просы приводятся внизу соответствующей страницы.
    Спросим у опытного программиста
    В различных местах книги вы встретите специальные разделы “Спросим у опытно- го программиста”, которые содержат дополнительную информацию или интересные комментарии по данной теме. Эти разделы представлены в формате “вопрос-ответ”.
    Учебные проекты
    Каждый модуль включает один или несколько проектов, которые показыва- ют, как на практике можно применить изложенный здесь материал. Эти учебные проекты представляют собой реальные примеры, которые можно использовать в качестве стартовых вариантов для ваших программ.
    Никакого предыдущего опыта
    в области программирования
    не требуется
    Для освоения представленного здесь материала никакого предыдущего опыта в области программирования не требуется. Поэтому, если вы никогда раньше не программировали, можете смело браться за эту книгу. Конечно же, в наши дни многие читатели уже имеют хотя бы минимальный опыт в программировании.
    Например, вам, возможно, уже приходилось писать программы на Java или C#.
    Как вы скоро узнаете, C++ является “родителем” обоих этих языков. Поэтому, если вы уже знакомы с Java или C#, то вам не составит труда освоить и C++.

    С++: руководство для начинающих
      1   2   3   4   5


    написать администратору сайта