Dyzzet|
C++ Data Science Алгоритмы Темы · Блог · YouTube
Обзоры книг по C++
Русскоязычная литература. Часть IV

Татьяна Александровна Павловская. C/C++. Программирование на языке высокого уровня

464 страницы. Питер, 2021

В соавторстве с Юрием Абрамовичем Щупаком Татьяна Александровна выпустила практикумы по структурному (239 с.) и объектно-ориентированному программированию (265 с.). Разделы озаглавлены как «семинары», то есть это методическая поддержка для преподавателя, а не что-то полезное для студента.

Книга по несуществующему языку C/C++. Структурное программирование, ООП и библиотека.

В начале: алфавит, лексема... ну сколько можно. Форматирование, конечно, будет плохим, порой — «стеночкой». С транслитом (sort_vybor).

Терминология местами вольная: то «помеченный оператор» (совсем не оператор), то «метка».

int k;
goto metka; ...
{int a = 3, b = 4;
   k = a + b;
   metka: int m = k + 1; ...
}

20 лет зарабатывают на методичке.

Для операционной системы MS-DOS sizeof (int) даст в результате 2, а для Windows 9X или OS/2 результатом будет 4.

И конечно же, никто не собирается освобождать память сразу после параграфа про это.

Хочу — выбираю стиль C, хочу — C++. new из C++, например, автор показала, но работа с файлами, самописные списки и деревья — будут написаны в стиле C.

В индустрии есть много разных стандартов оформления, весьма сомнительно, что какой-то из них рекомендует классы именовать с маленькой буквы, а объекты — с большой:

monstr Vasia;

А теперь время серьёзных претензий. Автор предлагает добавлять в обыкновенный двусвязный список элементы по ключу, который и не ключ вовсе, а позиция в списке. Причём и «ключ», и данные должны быть почему-то одного типа.

template <class Data>
   Node * List <Data>::insert(Data key, Data d){
   ...
}

В идеале позицию должен задавать итератор — объект специального класса. В учебном коде это может быть и просто целое число, допустим. И самый сложный «трюк» — константная ссылка для передачи значения (просто передача по значению может привести к лишнему копированию сложного объекта, просто ссылки тоже мало, будут проблемы с простейшими типами, например, int: list.insert(..., 7); не скомпилируется). Про аллокаторы умолчим. Перепишем.

template <typename V>
iterator List<V>::insert(iterator position, const V& value)
{
   ...
}

Учебник содержит много полезных вещей, особенно копипасты документации, но автор не утруждает себя какими-то объяснениями: «Шаблоны методов не могут быть виртуальными». А почему?

Приложения: операции языка C++, printf(), арифметические преобразования типов, заголовочные файлы стандартной библиотеки; константы, макросы и типы стандартной библиотеки; функции стандартной библиотеки, таблицы кодов ASCII.

Александр Павлович Побегайло. C/C++ для студента

528 страниц. БХВ-Петербург, 2006

Конспекты. Можно использовать как справочник. Кое-что устарело.

Автор также выпустил книгу о программировании под Windows.

Вадим Валериевич Подбельский. Язык Си++

560 страниц. Финансы и статистика, 2003

Темы C++03, кажется, освещены многие, если не все. Но отовсюду веет формализмом. Вот характерный пример.

Кроме типов, для объектов явно либо по умолчанию определяются:

  • класс памяти (задаёт размещение объекта);
  • область (сфера) действия, связанного с объектом идентификатора (имени);
  • видимость объекта;
  • продолжительность существования объектов и их имён;
  • тип компоновки (связывания).

Не очень понятно, что с этой информацией делать. Трудно пробираться через все эти области (сферы).

К пущему сожалению, не обошлось без 16-битной древности и <dos.h>.

Приложения: таблицы кодов ASCII, константы предельных значений, библиотека C, графическая библиотека BC++, потоковый ввод-вывод, библиотечные классы.

Марина Игоревна Полубенцева. C/C++. Процедурное программирование

448 страниц. БХВ-Петербург, 2008

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

Когда дело доходит до языка, читателя грузят таблицами с операторами.

В выходных данных сказано: «Для программистов и разработчиков встраиваемых систем». Но почему бы не описать шаблоны функций? Это возможность из C++, не касающаяся ООП.

Что остаётся от C++? Ссылки, new, cout, bool и новые операторы преобразования типов? Давайте поищем книгу получше.

Приложения: представление данных, C и низкоуровневое программирование.

Евгений Леонидович Романов. Практикум по программированию на C++

432 страницы. БХВ-Петербург, 2004

Книга начинается, как я понял, с творчества автора:

Спят подружки вредные безмятежным сном,
Снятся мышкам хлебные крошки по столом,
Буратинам — досточки, кошкам — караси,
Всем собакам — косточки, программистам — Си.

Главы книги: «Анализ и проектирование программ», «Программист „начинающий“», «Программист „системный“», «Программист „объектно-ориентированный“». Вот такая классификация.

К книге — все «классические» придирки. Код никак не оформлен. К тому же он набран рубленой гарнитурой (а не моноширинной), но со странным кернингом, из-за этого возникает ощущение, что читаешь китайскую этикетку.

Сергей Викторович Сабуров. Языки программирования C и C++

647 страниц. Бук-пресс, 2006

Главы: C, C++, отладчик Turbo Debugger, Турбо Си++, трюки программирования.

int x = 1;       /* Variable definitions */
int y = 1;
extern int printf(char *,...);/* Function declration */
main ()  /* Function definition
for main function */

int z;    /* Variable declarations */
int w;
z = y + x;      /* Executable statements */
w = y - x;
printf("z = %d \nw = %d \n", z, x);

Даже не спрашивайте.

Где-то в середине затесался справочник по работе с DOS.

Дальше смотреть бессмысленно.

Приложение: средства для разработчиков.

Андрей Викторович Столяров. Введение в язык C++

См. отдельный обзор.

Геннадий Алексеевич Тяпичев. Быстрое программирование на C++

384 страницы. СОЛОН-Пресс, 2017

Очередная книга-оборотень про C++ Builder.

Автор также написал книги: «Компьютер на любительской радиостанции» и «Азбука УКВ. Как построить трансивер».

Михаил Евгеньевич Флёнов. Программирование на C++ глазами хакера

352 страницы. БХВ, 2004

Немного про сети, много про WinAPI. Это книга не про C++, а про логику в обработчиках событий.

Автор также написал: «PHP глазами хакера», «Компьютер глазами хакера», «Web-сервер глазами хакера», «Linux глазами хакера», «Библия Delphi», «Delphi глазами хакера», «Delphi 2005. Секреты программирования».

Михаил Евгеньевич Флёнов. Искусство программирования игр на C++

256 страниц. БХВ, 2006

Книга про Direct3D.

Ильдар Шаукатович Хабибуллин. Программирование на языке высокого уровня. C/C++

512 страниц. БХВ, 2006

Типичная методичка с типичными проблемами.

Потенциально интересный раздел «Верификация программы» — просто небольшая копипаста.

Александр Анатольевич Чиртик. Программирование на C++. Трюки и эффекты

352 страницы. Питер, 2010

Не первая книга с таким названием. На этот раз «трюки» — это приёмы работы с WinAPI.

Дмитрий Михайлович Якушев. «Философия» программирования на языке C++

320 страниц. Бук-пресс, 2006

Части: введение в C++, Турбо C++, «От теории к практике». Первая часть сумбурная, вторая устаревшая, третья — беспорядочный сборник тем: правило «право-лево», что-то про STL, умные указатели, немного про виртуальность, «чтение исходных текстов», функцию gets(), «свойства», комментарии, веб-программирование, «ошибки работы с памятью» и т. д. (эти темы идут подряд).

Примеров кода мало, это всё больше схемы. Код, само собой, «стеночкой». Для кого это всё и для чего — совершенно не понятно.

5 ноября 2021
C++ книги
Зарегистрируйтесь и войдите, чтобы оставлять комментарии и голосовать.

Книги по C++
Книги Бьерна Страуструпа
Учебная литература. Часть I / Часть II / Часть III. Книги Герберта Шилдта / Часть IV
Русскоязычная литература. Часть I / Часть II / Часть III / Часть IV
Стандартная библиотека шаблонов
Структуры данных, алгоритмы, решение задач
Что выбрать? (Обновляется)
Также может быть интересным
© MMXI—MMXXIII. RSS. Поддержать сайт
Светлая тема / тёмная тема