15 февраля
Нужно ли учить C перед C++

Учить С++ можно по-разному. Тезис, что учить C перед C++ вовсе не обязательно, верный. Эти языки эволюционировали отдельно, хотя и влияли друг на друга. Но как можно игнорировать факт, что C++ основан на C и вбирает в себя значительную его часть? Попытаемся проанализировать проблему с точки зрения целей такого обучения и методов их достижения.

Посмотрим выступление Кейт Грегори на конференции, почитаем учебный план «Яндекса» и статью Бьерна Страуструпа, создателя языка C++.

Выступление Кейт Грегори

Часовое выступление Кейт Грегори на CppCon’е в 2015 «Перестаньте преподавать C» наделало шума. На одном из слайдов (он скрыт, его нет на видео, но слайды можно скачать и посмотреть) представлено резюме доклада:

«На сегодняшний день большинство людей, которые собираются помочь другим изучать C++, начинают с „введения в C“. И я верю, что это вносит большой вклад в то, что в мире появляется много плохого кода на C++. В последние годы я преподаю C++ (и даю рекомендации тем, кто учат его самостоятельно) совершенно по-другому. Никаких строк типа char*, strlen, strcmp, strcpy, printf и обычных массивов []. Указатели вводятся очень поздно. Ссылки идут до указателей, полиморфизм показывается на ссылках, а не указателях. Умные указатели, подобно и обычным сырым указателям“ (как результат вызова new или операции &), оставлены до того времени, когда они понадобятся. Стандартная библиотека как можно раньше, и современный код на C++ с первого урока».

Читать далее →
7 февраля
Обзоры книг по C++. Учебная литература. Часть II

Стенли Б. Липпман, Жози Лажойе, Барбара Э. Му. Язык программирования C++. Базовый курс

1120 страниц. Вильямс, 2014

Stanley B. Lippman, Josée Lajoie, Barbara E. Moo. C++ Primer. Addison-Wesley, 2013

Стенли Липпман и Барбара Му приложили руку к созданию первых версий компилятора C++ Cfront в 1980-х (как пишет Бьерн Страуструп в книге «Дизайн и эволюция C++», глава 3.3.4).

Читать далее →
3 января
Обзоры книг по C++. Учебная литература. Часть I

Харви Дейтел, Пол Дейтел. Как программировать на C++

1456 страниц. Бином, 2008

Harvey Deitel, Paul Deitel. C++: How to Program. Prentice Hall, 2005

Авторы также выпускают книги по языкам C и C♯‎. Книга вполне подойдёт для новичков, но с оговорками. По году публикации понятно, что что-то новее стандарта C++03 искать не нужно. Однако первая же программа, «Hello, world», использует заголовочный файл <iostream.h> ещё из достандартного C++, cout из глобального пространства имён и пропускает тип возвращаемого значения функции main() (просто main() вместо int main()).

// Первая программа на C++
#include <iostream.h>
 
main()
{
    cout << "Добро пожаловать в C++\n";
 
    return 0;   //показывает, что программа успешно окончена
}

Читать далее →
24 декабря 2020
Обзоры книг по C++. Книги Бьерна Страуструпа

Бьерн Страуструп — автор языка C++. Варианты имени: Бьярне, Бьёрн.

Язык программирования C++. Специальное издание

1136 страниц. Бином, 2017

Bjarne Stroustrup. The C++ Programming Language. Special Edition. Addison-Wesley, 2000

Описан стандарт C++98. Автор время от времени отвлекается на эссе о том, как проектировался язык. Один небольшой раздел так и называется — «Философские замечания». Изложение весьма непростое, нелинейное. К концу первой главы, не самой короткой, автор так и не приступает к системному описанию языка, но уже даёт конкретные советы:

«Не используйте встраиваемые функции, разве что для значительной оптимизации».

Читать далее →
Обзоры книг по C++

Это будет серия публикаций о большом количестве книг по C++. Книг по этому языку действительно много, они разные, как разными бывают и цели у читателей. Поставим нескромную задачу — помочь сориентироваться в этом море литературы.

Уже отрецензировано 8430 страницы.

Понятно, что сто книг не могут быть полностью уникальными, поэтому они разбиты на условные группы. Если какая-то книга выделяется на фоне остальных, она удостаивается большего внимания.

Первый стандарт C++ был принят в 1995 году (C++ ANSI 1995), но первый международный — только в 1998 (ISO/IEC 14882:1998), поэтому первый и более ранние версии будем считать «достандартным» C++.

  1. Бьерн Страуструп
  2. Учебная литература: 1
  3. Русскоязычные авторы
  4. Стандартная библиотека
  5. Для профессионалов
  6. Специализированные
  7. Прочие
  8. Англоязычные книги
Введите автора или название
2
1