Аннотация
В книге, написанной создателем языка C++ Бьерном Страуструпом, представлено описание процесса проектирования и разработки языка программирования C++.
Здесь изложены цели, принципы и практические ограничения, наложившие отпечаток на структуру и облик C++, обсужден дизайн недавно добавленных в язык средств: шаблонов, исключений, идентификации типа во время исполнения и пространств имен. Автор анализирует решения, принятые в ходе работы над языком, и демонстрирует, как правильно применять «реальный объектно-ориентированный язык программирования».
Книга удобно организована, поучительна, написана с юмором. Описание ключевых идей даст начинающему пользователю ту основу, на которой позже он выстроит свое понимание всех деталей языка. Опытный программист найдет здесь обсуждение принципиальных вопросов проектирования, что позволит ему лучше понять язык, с которым он работает.
|
Отзывы читателей
Внимание! Администрация сайта оставляет за собой право корректировать или удалять отзывы, которые будут сочтены некорректными, оскорбительными, нарушающими авторские права или не относящимися к теме книги.
О всех вопросах и пожеланиях, связанными с работой издательства или сайта пишите в разделе Обратная связь.
Спасибо за понимание.
13.10.2008 [оценка: 5]
Никита
Также на отзыв iZEN: этот комментарий точнее было бы назвать не "почему с++ плохой язык" а "почему ооп плохая технология". Автор (кто он там) катит бочку практически на все идеи ооп, назначение которых так бережно растолковываются во всех хороших книжках по с++ и ооп проектированию. книгу заказал, жду, дико интересно =)
08.04.2006 [оценка: 4]
Igor
Занятная книжка. Классика. Зря только не указано нигде, что с ее издания прошло 12 лет. С тех пор вышло 3е издание языка от метра. Это нужно учитывать при прочтении.
14.03.2006 [оценка: 5]
kolan
На отзыв iZEN: Довольно забавно, что этот отзыв именно на ЭТУ книгу. Прочитайте ее и поймете, почему C++ - прекрасный язык (хотя и не свободный от недостатков). На сегодняшний день это самый популярный язык системного программирования, а людей ведь не обманешь. По тексту отзыва: вся прелесть C++ в том, что он позволяет дозировать абстракцию тем уровнем, который Вам нужен. Можно написать программу "почти на C", ничего не потеряв в эффективности, но много приобретя в надежности. А можно использовать язык на всю катушку, но при этом придется платить (в меньшей степени эффективностью, в большей степени необходимостью изучить эти возможности). Но здесь уже придется читать другие книжки.
14.03.2006 [оценка: 5]
kolan
Очень хорошая книга. Господа издатели, а может поднапряжетесь и переиздадите ARM (Эллис, Страуструп)? А то получается, что среди десятков изданий по C++ самого важного в продаже нет.
14.03.2006 [оценка: 5]
iZEN
http://avva.livejournal.com/1516071.html "Одна из главных причин, почему C++ плохой язык: для этого надо сначала понять, почему C хороший. В чем состоит то свойство C, из-за которого его называют "портабильным ассемблером"? Дело не в том, что "близко к машине", и всё низкого уровня. Дело в том, что почти всегда в C эффект любой строки кода локален и очевиден. Когда я что-то делаю в C, неважно что, я очень хорошо понимаю, что именно происходит. Если я пишу x=y, я знаю точно, что происходит. Если я пишу f(...), я знаю точно, какая конкретно функция будет вызвана, я могу указать на неё пальцем, и я знаю точно, что произойдёт в момент входа в неё и выхода из неё. Если я выделяю память, я знаю точно, что она не исчезнет, пока я её не освобожу. Итд. итп. Атомарные строки кода переходят в атомарные куски кода во время запуска, и никаких сюрпризов. Есть исключения: например, если я вызываю функцию через ссылку, я не знаю, что собственно я вызвал, до рантайма. Но этих исключений очень мало и они тоже "локализованы" и их легко понять. Это необязательно хорошо. Но это — в C — выполняется последовательно, и то, что это последовательно — хорошо. Разные языки по-разному решают вопрос о том, как позволить программистам прятать информацию от самих себя. В объектно-ориентированных языках принцип полиморфизма, принципиального незнания мной того, объект какого класса я вызываю по ссылке (базового или наследника), является краеугольным; и это по-своему хорошо, если проведено последовательно. C++ — смесь разных принципов отношения к информации и средствам её прятать или открывать, которые доступны программисту; смесь, кажется, очень плохо продуманная. С одной стороны, полностью сохранён "низкий уровень" C, в том числе отсутствие сборки мусора, т.е. очень важный пример того, что заставляем программиста за всем следить и обо всём помнить. Множественное наследование — другой пример: если практически оказывается возможным его воплотить, мы его воплощаем, пусть оно концептуально сложно, пусть оно заставляет программиста выслеживать порядок вызова конструкторов, всякие ужасные "ромбики" и прочую хренотень. Но, с другой стороны: полностью нарушен (я бы сказал, низвергнут с пьедестала и подвержен особо извращенному поруганию) этот самый принцип локальности поведения системы в ответ на строчку моего кода. Я всего лишь объявил переменную какого-то типа, написав "Typename varname;", но эта строчка может привести к вызову неизвестного мне конструктора, а за ним — кода сколь угодно, вообще говоря, сложности. Я всего лишь применяю известный мне оператор к переменной — а он, оказывает, overloaded у этого класса, и черт знает что на самом деле там произойдет. Я всего лишь вышел из функции, что может быть проще, написал }, а в рантайме на самом деле пошли плясать деструкторы всех автоматических объектов в этой функции. И даже и не буду начинать говорить про copy constructor и прочие подобные прелести. Так вот, поэтому C++ — плохой язык. Он настолько много прячет за кулисами, чтобы навязать программисту режим работы "моя хата с краю": пиши свой код, не волнуйся насчёт того, что магически происходит вокруг него, всё хорошо, всё идёт по плану... И в то же время того же программиста заставляет следить за всеми malloc()'ами и new, рассчитывать ужасные иерархии наследования и дикие функции-"френды", не говоря уж о темплейтах. По сути дела, медленно и неумолимо превращает программиста в шизофреника."
30.01.2006 [оценка: 4]
Посетитель
Книга интересна профессионалам, так как в ней изложена история становления С++ от первого лица. Мэтр пишет, почему были приняты именно такие решения, почему С++ стал таким, каким он стал. Но много он пишет и об отвергнутых решениях, и почему это было сделано. В общем, книжка - ОЧЕНЬ интересная.
27.01.2006 [оценка: 5]
Михаил
Книга нужная и интересная. Позволяет по новому взглянуть на старые и вроде бы знакомы вещи.
|