Dyzzet|
C++ Data Science Алгоритмы Темы · Блог · YouTube · Telegram
18 декабря 2021
using namespace std

Пространства имён появились в 1993 году. Наверное, с тех пор и идут споры о директиве using namespace std и других подобных. Посмотрим, хорошо это или плохо и как пишут в разных компаниях (Google, Epic Games, Qt Company).

Что мы обычно видим.

#include <iostream>
using namespace std;
 
int main()
{
    cout << "Hello, world!" << endl;
    return 0;
}

На первый взгляд, удобно. Но в последующем возможны конфликты имён.

Читать далее →
29 ноября 2021
Обзоры книг по C++. Стандартная библиотека шаблонов

В этой части — обзоры книг о стандартной библиотеке шаблонов C++ (STL, Standard Template Library). Эта библиотека ведёт свою историю с начала 1990-х, когда её разрабатывал Александр Степанов в компании HP.

Что-то в книгах со временем устаревает, например, встречается умный указатель auto_ptr. Тем временем в последних стандартах появилось очень много нововведений: в C++11  — многопоточность, работа с точным временем, новые генераторы случайных чисел, std::array, std::forward_list, std::unordered_map и пр., в C++17 — std::string_view, математические функции, работа с файловой системой, вариативный тип std::any, параллельные версии для алгоритмов и множество мелких улучшений, в C++20 — невладеющие указатели на массив std::span, библиотека для работы с битами, ranges, chrono, расширенная библиотека потоков и пр.

Леен Аммерааль. STL для программистов на C++

240 страниц. ДМК, 1999

Leen Ammeraal. STL for C++ Programmers. John Wiley, 1997

Книга начинается с короткого введения в шаблоны, экскурса в историю (как разработка HP вошла в стандарт).

Читать далее →
5 ноября 2021
Обзоры книг по C++. Русскоязычная литература. Часть IV (П—Я)

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

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

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

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

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

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

Читать далее →
4 ноября 2021
Обзоры книг по C++. Русскоязычная литература. Часть III (Л—О)

Валерий Викторович Лаптев. C++. Экспресс-курс

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

Обычный учебник. Немного устаревший. Знакомит с языком, библиотекой, отдельная часть — о программировании под Windows.

Возмущает только название раздела «Тяжёлое наследие C».

Приложения: системы фирмы Borland, Visual C++, ссылки по теме.

Читать далее →
3 ноября 2021
Обзоры книг по C++. Русскоязычная литература. Часть II (Д—К)

Владимир Григорьевич Давыдов. Программирование и основы алгоритмизации

447 страниц. Высшая школа, 2003

Эта книга не обещает научить языку C++, к тому же автор упорно пишет Си/C++. В основном будет часть, совместимая с C (в том числе константы не const, а #define). Форматирование будет не идеальное, где-то — транслит (kaf_name — «название кафедры»).

Сперва идут системы счисления, история языков программирования, блок-схемы. Автор немного знакомит с грамматиками и тем, как их представляют.

Читать далее →
3 мая 2021
Обзоры книг по C++. Русскоязычная литература. Часть I (А—Г)

Здесь перечислена базовая литература по языку C++ русскоязычных авторов, кроме книг, опубликованных издательствами университетов, и книг по конкретным технологиям (C++ Builder, Visual C++, Qt). Русскоязычная литература для профессионалов, специальная литература и книги по STL — в соответствующих разделах.

Аверкин В. П., Бобровский А. И., Веснич В. В., Радушинский В. Ф., Хомоненко Анатолий Дмитриевич. Программирование на C++

256 страниц. Корона-Принт, 1999

Книгу сопровождает комментарий «Под редакцией профессора А. Д. Хомоненко», ему же принадлежит и предисловие. Этот автор написал и другие книги — по языку Delphi и базам данных.

Введение очень формальное, многое вываливается безо всякого объяснения. Книга совершенно устаревшая, оформление кода ужасное, практически хаотичное. Некоторые вещи не выдерживают никакой критики (неправильная типографика и странный абсолютный путь).

#include “f:\POS_C\PRIMER\point.cpp“

А некоторые — просто ошибочны. Здесь вместо delete[] авторы написали delete (к тому же используется транслит и неоправданное сокращение).

int *mas=new int[n];
 . . .
delete mas;

Хотя в этой части нет книг, полностью посвящённых конкретным технологиям, последняя глава этой книги с кучей скриншотов показывает работу с Borland C++ Builder.

Читать далее →
13 марта 2021
Обзоры книг по C++. Учебная литература. Часть IV

Виктор Штерн. Основы C++: методы программной инженерии

880 страниц. Лори, 2003

Victor Shtern. Core C++. A Software Engineering Approach. Prentice Hall, 2000

Название «Core C++» правильнее было бы перевести не как «Основы C++», а как «ядро языка», то есть язык без стандартной библиотеки: отдельной такой главы действительно нет.

Книга с претензией. Первая тема первой главы «Объектно-ориентированный подход» — «Истоки кризиса программного обеспечения». То есть читателя ждут эссе о методах управления разработкой.

Дальше идёт типичное описание C++98, но с парой оговорок. Автор демонстрирует связный список. Но проблема в том, что функции появляются лишь в следующей главе. То есть вся работа со «связным списком» была прямо в функции main().

Читать далее →
9 марта 2021
Обзоры книг по C++. Учебная литература. Часть III. Книги Герберта Шилдта

А. Фридман, Л. Кландер, М. Михаэлис, Г. Шилдт. C/C++. Архив программ (2001)

В этой части обсуждаются только книги Герберта Шилдта на русском языке. У этого автора также есть книги по другим языкам — C, C♯ и Java. Герберт Шилдт был членом комитета ANSI/ISO по стандартизации языка C++.

Герберт Шилдт. Самоучитель C++

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

Herbert Schildt. Teach Yourself C++. McGraw-Hill, 1998

Очень рано появляются классы, автор будто бы спешит обсуждать ООП. Указатели, массивы, ссылки и многие другие вещи вводятся будто между делом.

По какой-то причине шаблоны и исключения попали в одну главу. Ещё более причудливое сочетание — «Пространства имён и другие темы» (операторы преобразования, статические и константные члены класса, дополнительный материал о конструкторах, спецификаторы сборки, ассемблерные вставки, массивы в качестве объектов ввода-вывода).

Описывается стандарт C++98, изложение недостаточно глубокое.

Приложения: отличия C и C++ (одна страница), ответы и решения (больше 180 страниц), список английских технических терминов, описание дискеты.

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

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

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

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

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

Слайды

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

Читать далее →
7 февраля 2021
Обзоры книг по 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).

Читать далее →
5 4
3
2 1
© MMXI—MMXXVI. RSS
 Boosty
Светлая тема / тёмная тема