LoveRead.info » Книги » Разная литература » Программирование. Принципы и практика использования C++ Исправленное издание - Бьёрн Страуструп

Программирование. Принципы и практика использования C++ Исправленное издание - Бьёрн Страуструп

Книгу Программирование. Принципы и практика использования C++ Исправленное издание - Бьёрн Страуструп читаем онлайн бесплатно полную версию! Чтобы начать читать не надо регистрации. Напомним, что читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Приятного чтения!

288 0 18:03, 26-08-2023
Программирование. Принципы и практика использования C++ Исправленное издание - Бьёрн Страуструп
26 август 2023

Книга Программирование. Принципы и практика использования C++ Исправленное издание - Бьёрн Страуструп читать онлайн бесплатно без регистрации

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

    1 ... 290 291 292 293 294 295 296 297 298 ... 337
    Перейти на страницу:
    Ritchie. The C Programming Language. Addison-Wesley, 1988. ISBN 0131103628.

    Stroustrup, Bjarne. “Learning Standard C++ as a New Language”. C/C++ Users Journal,May 1999.

    Stroustrup, Bjarne. “C and C++: Siblings”; “C and C++: A Case for Compatibility”; and “C and C++: Case Studies in Compatibility”. The C/C++ Users Journal, July, Aug., and Sept. 2002.

    Статьи Страуструпа легко найти на его домашней странице.

    27.1.2. Свойства языка С++, которых нет в языке С

    С точки зрения языка C++ в языке C (т.е. в версии C89) нет многих свойств.

    • Классы и функции-члены.

     • В языке С используются структуры и глобальные функции.

    • Производные классы и виртуальные функции

     • В языке С используются структуры, глобальные функции и указатели на функции (раздел 27.2.3).

    • Шаблоны и подставляемые функции

     • В языке С используются макросы (раздел 27.8).

    • Исключения

     • В языке С используются коды ошибок, ошибочные возвращаемые значения и т.п.

    • Перегрузка функций

     • В языке С каждой функции дается отдельное имя.

    • Операторы new/delete

     • В языке С используются функции malloc()/free() и отдельный код для инициализации и удаления.

    • Ссылки

     • В языке С используются указатели.

    • Ключевое слово const в константных выражениях

     • В языке С используются макросы.

    • Объявления в инструкциях for и объявления как инструкции

     • В языке С все объявления должны быть расположены в начале блока, а для каждого набора определений начинается новый блок.

    • Тип bool

     • В языке С используется тип int.

    • Операторы static_cast, reinterpret_cast и const_cast

     • В языке С используются приведения вида (int)a, а не static<int>(a).

    • // комментарии

     • В языке С используются комментарии /* ... */

     

     На языке С написано много полезных программ, поэтому этот список должен напоминать нам о том, что ни одно свойство языка не является абсолютно необходимым. Большинство языковых возможностей — и даже большинство свойств языка С — разработано только для удобства программистов. В конце концов, при достаточном запасе времени, мастерстве и терпении любую программу можно написать на ассемблере. Обратите внимание на то, что благодаря близости моделей языков С и С++ к реальным компьютерам они позволяют имитировать многие стили программирования.

    Остальная часть этой главы посвящена объяснению того, как писать полезные программы без помощи этих свойств. Наши основные советы по использованию языка С++ сводятся к следующему.

    • Имитируйте стили программирования, для которых разработаны свойства языка С++, чтобы поддерживать возможности, предусмотренные языком C.

    • Когда пишете программу на языке C, считайте его подмножеством языка C++.

    • Используйте предупреждения компилятора для проверки аргументов функций.

    • Контролируйте стиль программирования на соответствие стандартам, когда пишете большие программы (см. раздел 27.2.2).

    Многие детали, касающиеся несовместимости языков С и С++, устарели и носят скорее технический характер. Однако, для того чтобы читать и писать на языке С, вы не обязаны помнить об этом.

    • Компилятор сам напомнит вам, если вы станете использовать средства языка С, которых нет в языке C.

    • Если вы следуете правилам, перечисленным выше, то вряд ли столкнетесь с чем-либо таким, что в языке С имеет другой смысл по сравнению с языком С++.

    В отсутствие всех возможностей языка С++ некоторые средства в языке С приобретают особое значение.

    • Массивы и указатели.

    • Макросы.

    • Оператор typedef.

    • Оператор sizeof.

    • Операторы приведения типов.

    В этой главе будет приведено несколько примеров использования таких средств.

     

     Я ввел в язык С++ комментарии //, унаследованные от его предшественника, языка BCPL, когда мне надоело печатать комментарии вида /* ... */. Комментарии // приняты в большинстве диалектов языка, включая версию C99, поэтому их можно использовать совершенно безопасно. В наших примерах мы будем использовать комментарии вида /* ... */ исключительно для того, чтобы показать, что мы пишем программу на языке C. В языке C99 реализованы некоторые возможности языка C++ (а также некоторые возможности, несовместимые с языком С++), но мы будем придерживаться версии C89, поскольку она используется более широко.

    27.1.3. Стандартная библиотека языка С

     

     Естественно, возможности библиотек языка С++, зависящие от классов и шаблонов, в языке С недоступны. Перечислим некоторые из них.

    • Класс vector.

    • Класс map.

    • Класс set.

    • Класс string.

    • Алгоритмы библиотеки STL: например, sort(), find() и copy().

    • Потоки ввода-вывода iostream.

    • Класс regex.

    Из-за этого библиотеки языка С часто основаны на массивах, указателях и функциях. К основной части стандартной библиотеки языка С относятся следующие заголовочные файлы.

    • <stdlib.h>. Общие утилиты (например, malloc() и free(); см. раздел 27.4).

    • <stdio.h>. Стандартный механизм ввода-вывода; см. раздел 27.6.

    • <string.h>. Манипуляции со строками и памятью в стиле языка C; см. раздел 27.5.

    • <math.h>. Стандартные математические функции для операций над числами с плавающей точкой; см. раздел 24.8.

    • <errno.h>. Коды ошибок математических функций из заголовочного файла <math.h>; см. раздел 24.8.

    • <limits.h>. Размеры целочисленных типов; см. раздел 24.2.

    • <time.h>. Функции даты и времени; см. раздел 26.6.1.

    • <assert.h>. Условия для отладки (debug assertions); см. раздел 27.9.

    • <ctype.h>. Классификация символов; см. раздел 11.6.

    • <stdbool.h>. Булевы макросы.

    Полное описание стандартной библиотеки языка С можно найти в соответствующем учебнике, например в книге K&R. Все эти библиотеки (и заголовочные файлы) также доступны и в языке С++.

    27.2. Функции

    В языке C есть несколько особенностей при работе с функциями.

    • Может существовать только одна функция с заданным именем.

    • Проверка типов аргументов функции является необязательной.

    • Ссылок нет (а значит, нет и механизма передачи аргументов по ссылке).

    • Нет функций-членов.

    • Нет подставляемых функций (за исключением версии C99).

    • Существует альтернативный синтаксис объявления функций.

    Помимо этого, все остальное мало отличается от языка С++. Изучим указанные отличия по отдельности.

    27.2.1. Отсутствие перегрузки имен функций

    Рассмотрим следующий пример:

    void print(int);         /* печать целого числа */

    void print(const char*); /* печать строки */ /* ошибка!

    1 ... 290 291 292 293 294 295 296 297 298 ... 337
    Перейти на страницу:
    1. Жалоба
    Отзывы - 0

    Прочитали книгу? Предлагаем вам поделится своим отзывом от прочитанного(прослушанного)! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.


    Уважаемые читатели, слушатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

    • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
    • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
    • 3. Просьба отказаться от нецензурной лексики.
    • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

    Надеемся на Ваше понимание и благоразумие. С уважением, администратор LoveRead.info.


    Установить VPN и читай слушай бесплатно

    Новые отзывы

    1. Людмила Хофман Людмила Хофман10 июнь 22:13 У меня перевернулся мир после прочтения ваших книг! Так приятно и чисто на душе, ведь по сути неважно кто с кем , а только любовь... Долгая игра - Рейчел Рид
    2. Анна Анна08 июнь 11:28 Спасибо за новую историю жизни и любви на сайте,прочитала с удовольствием .... Давай поженимся - Юлия Резник
    3. Елена Елена08 июнь 11:13 Прочла несколько романов этого, без сомнения, талантливого автора. Впечатление прекрасное, но хотелось бы когда-нибудь прочесть... Предатель. Ты врал мне годами - Арина Арская
    Все комметарии
    Новинки бесплатной онлайн библиотеки