Екскурсія по C ++ (Bjarne Stroustrup) ( 2-е видання для C ++ 17 ) "Тур" - це швидкий огляд (близько 180 сторінок та 14 розділів) підручник з огляду всіх стандартних C ++ (мови та стандартної бібліотеки та використання C ++ 11 ) на помірно високому рівні для людей, які вже знають C ++ або принаймні досвідчені програмісти. Ця книга є розширеною версією матеріалу, який складає глави 2-5 мови програмування C ++, 4-е видання.
Прискорений C ++ (Ендрю Коніг та Барбара Му, 1-е видання - 24 серпня 2000 р.) Це, в основному, охоплює те саме, що і ґрунтовник C ++ , але це робить на чверті його простору. Це багато в чому тому, що це не спроба бути вступом до програмування , а вступом до C ++ для людей, які раніше програмували на іншій мові. Він має більш круту криву навчання, але, для тих, хто може впоратися з цим, це дуже компактне вступ до мови. (Історично це склало нове підґрунтя, будучи першою книгою для початківців, яка застосувала сучасний підхід до викладання мови.) Незважаючи на це, C ++, який він викладає, суто C ++ 98. [Рецензія]
Ефективніший C ++ (Скотт Майєрс) Навіть більше правил, ніж Ефективний C ++ . Не так важливо, як у першій книзі, але все-таки добре знати.
Винятковий C ++ (Herb Sutter) Представлений як набір головоломок, це одне з найкращих та ретельних обговорень правильного управління ресурсами та безпекою винятків у C ++ за рахунок придбання ресурсів - це ініціалізація (RAII) на додаток до глибокого висвітлення різноманітності. інших тем, включаючи ідіому pimpl, пошук імен, хороший дизайн класу та модель пам'яті C ++. [Рецензія]
Більш винятковий C ++ (Herb Sutter) Окрімобговорення ефективного об'єктно-орієнтованого програмування в C ++ та правильного використання STL,охоплює додаткові теми безпеки винятків, не охоплені винятковим C ++ . [Рецензія]
Винятковий стиль C ++ (Herb Sutter) Обговорює загальне програмування, оптимізацію та управління ресурсами; у цій книзі також є чудове опис того, як писати модульний код на C ++ за допомогою функцій, які не є членами, та принципу єдиної відповідальності. [Рецензія]
Стандарти кодування C ++ (Герб Саттер та Андрій Олександреску) "Стандарти кодування" тут не означають "скільки пробілів я повинен відступати від коду?" Ця книга містить 101 найкращі практики, ідіоми та загальні підводні камені, які можуть допомогти вам написати правильний, зрозумілий та ефективний код C ++. [Рецензія]
C ++ Templates: The Complete Guide (David Vandevoorde і Nicolai M. Josuttis) Цекнига про шаблонияк вони існували до C ++ 11. Він охоплює все, від самих основ до найсучаснішого метапрограмування шаблонів і пояснює кожну деталь того, як працюють шаблони (як концептуально, так і те, як вони реалізовані), а також обговорює багато загальних підводних каменів. Має відмінні підсумки Правила одного визначення (ODR) та роздільну здатність перевантаження в додатках. Друге видання охоплює C ++ 11, C ++ 14 і C ++ 17 вже опубліковано. [Рецензія]
C ++ 17 - Повне керівництво (Nicolai M. Josuttis) У цій книзі описано всі нові функції, внесені до стандарту C ++ 17, що охоплюють все, від простих, таких як "Inline Variables", "constexpr if" аж до "Polymorphic Ресурси пам'яті "та" Нове та видалене за допомогою даних із перекриттям ".
Сучасний дизайн C ++ (Андрій Олександреску) Новаторська книга про передові технології загального програмування. Представляє дизайн на основі політики, списки типів та основні загальні ідіоми програмування, потім пояснюється, скільки корисних моделей дизайну (включаючи невеликі алокатори об'єктів, функтори, фабрики, відвідувачі та багатометодичні методи) можуть бути реалізовані ефективно, модульно та чисто з використанням загального програмування . [Рецензія]
Метапрограмування шаблонів C ++ (Девід Абрахамс та Олексій Гуртовой)
C ++ Concurrency In Action (Ентоні Вільямс) Книга, що охоплює підтримку паралельних технологій C ++ 11, включаючи бібліотеку потоків, бібліотеку атомів, модель пам'яті C ++, замки та мютекси, а також питання проектування та налагодження багатопотокових програм. Друге видання охоплює C ++ 14 і C ++ 17 вже опубліковано.
Розширене метапрограмування на C ++ (Davide Di Gennaro) Посібник з технічних методів TMP перед C ++ 11, орієнтований більше на практику, ніж на теорію. У цій книзі є багато фрагментів, деякі з яких зроблені застарілими за типовими ознаками, але методи, проте, корисні знати. Якщо ви можете миритися з вигадливим форматуванням / редагуванням, його легше читати, ніж Олександреску, і, певно, більш корисно. Для більш досвідчених розробників є хороший шанс, що ви можете підібрати щось про темний куточок C ++ (химерність), яке зазвичай виникає лише через великий досвід.
Функціональне програмування на C ++ (Іван Чукич) Книга знайомить читача з функціональною парадигмою в сучасній C ++. Він охоплює теоретичні та кодові аспекти з різноманітними прикладами та діаграмами. Автор має досвід викладання та використовує його, щоб плавно провести читача через різні аспекти функціонального програмування.
C ++ 11 / 14 / 17 Стандарт (INCITS / ISO / IEC 14882: 2011/2014/2017) Це, звичайно, є остаточним арбітром всього того, що є або не є С ++. Однак майте на увазі, що він призначений виключно як орієнтир для досвідчених користувачів, які бажають приділити багато часу та зусиль на його розуміння. Стандарт C ++ 17 випускається в електронному вигляді за 198 швейцарських франків.
Стандарт C ++ 17 доступний, але, здається, не в економічній формі - безпосередньо з ISO він коштує 198 швейцарських франків (близько 200 доларів США). Для більшості людей остаточний проект до стандартизації є більш ніж адекватним (і безкоштовним). Багато хто віддасть перевагу ще більш новій чернетці , документуючи нові функції, які, ймовірно, будуть включені до C ++ 20.
Огляд нового C ++ (C ++ 11/14) (лише PDF) (Скотт Майєрс) ( оновлено для C ++ 14 ) Це презентаційні матеріали (слайди та деякі конспекти лекцій) триденного навчального курсу, запропонованого Скотт Майєрс, який є дуже шанованим автором на C ++. Незважаючи на те, що список предметів короткий, якість висока.
В Основні принципи C ++ (C ++ 11 / 14/17 / ...) ( під редакцією Бьярне Страуструп і Herb Sutter) є розвивається онлайн документ , що складається з набору керівних принципів з використанням сучасних C ++ добре. Настанови зосереджені на відносно вищих рівнях, таких як інтерфейси, управління ресурсами, управління пам'яттю та паралельність, що впливають на архітектуру додатків та дизайн бібліотеки. Проект був оголошений на CppCon'15 Bjarne Stroustrup та іншими та вітає внесок громади. Більшість вказівок доповнені обґрунтуванням та прикладами, а також обговореннями можливої підтримки інструментів. Багато правил розроблені спеціально для автоматичного перевірки за допомогою інструментів статичного аналізу.
C ++ Super-FAQ (Marshall Cline, Бьярне Страуструп і інші) є спробою Стандартної Foundation C ++ уніфікувати C ++ часто задаються раніше підтримували індивідуально Marshall Cline і Бьярне Страуструп , а також включення нових внесків. Елементи в основному стосуються питань на проміжному рівні та часто написані з жартівливим тоном. Не всі елементи можуть бути повністю оновлені з останньою версією стандарту C ++ ще.
cppreference.com (C ++ 03/11/14/17 / ...) (ініційований Нейт Колем) - це вікі, який узагальнює основні характеристики основної мови та має велику документацію стандартної бібліотеки C ++. Документація дуже точна, але її легше читати, ніж офіційний стандартний документ, і забезпечує кращу навігацію завдяки своїй природі вікі. Проект документує всі версії стандарту C ++, а сайт дозволяє фільтрувати дисплей для певної версії. Проект був представлений Нейт Колем на CppCon'14 .
Дизайн та еволюція C ++ (Bjarne Stroustrup) Якщо ви хочете дізнатись, чому мова є такою, якою вона є, ця книга саме там, де ви знайдете відповіді. Це охоплює все до стандартизації C ++.
Романи на C ++ - (Ендрю Кеніг та Барбара Му) [Рецензія]
Розширені стилі та ідіоми програмування на C ++ (Джеймс Копліен) Попередник руху шаблону, він описує багато специфічних для ідентифікацій C ++ «ідіом». Це, звичайно, дуже хороша книга, і, можливо, все-таки варто прочитати, якщо ви можете витратити час, але досить старий і не в курсі сучасних C ++.
Великий масштаб програмного забезпечення C ++ (Джон Лакос) Лакос пояснює методи управління дуже великими проектами програм C ++. Звичайно, добре читати, якби це було лише в актуальному стані. Він був написаний задовго до C ++ 98 і пропускає багато функцій (наприклад, простори імен), важливих для масштабних проектів. Якщо вам потрібно працювати у великому проекті програмного забезпечення C ++, ви можете прочитати його, хоча вам потрібно взяти більше, ніж зерно солі. Перший том нового видання виходить у 2019 році .
Всередині об'єктної моделі C ++ (Стенлі Ліппман) Якщо ви хочете знати, як зазвичай реалізуються функції віртуальних членів і як базові об'єкти зазвичай викладаються в пам'ять за сценарієм багатонаспадкування, і як все це впливає на продуктивність, саме тут ви будете знайти ґрунтовне обговорення таких тем.
Довідковий посібник з анотованими C ++ (Bjarne Stroustrup, Margaret A. Ellis) Ця книга досить застаріла тим, що вона вивчає версію C ++ 2.0 1989 року. Шаблони, винятки, простори імен та нові касти ще не були представлені. Говорячи, що, однак, ця книга проходить весь стандарт часу C ++, пояснюючи обґрунтування, можливі реалізації та особливості мови. Це не книга для вивчення принципів та моделей програмування на C ++, але для розуміння кожного аспекту мови C ++.
Мислення в С ++ (Брюс Еккель, 2-е видання, 2000). Два томи; це безкоштовний набірпідручників із стилюпідручника. Завантаження: т. 1 , т. 2 . На жаль, їх затьмарила низка тривіальних помилок (наприклад, підтвердження того, що тимчасові журнали автоматичноconst
), без офіційного списку помилок. Частковийсписок третьої партії учасників доступний за посиланням ( http://www.computersciencelab.com/Eckel.htm ), але він, очевидно, не підтримується.
Науково-технічний C ++: Вступ до передових методик та прикладів (Джон Бартон та Лі Накман) Це всеосяжна та дуже детальна книга, яка намагалася пояснити та використати всі функції, доступні в C ++, у контексті числових методів. У той час було впроваджено кілька нових методик, таких як Цікаво повторюваний шаблон шаблону (CRTP, який також називають трюком Бартона-Накмана). Він запровадив декілька методів, таких як розмірний аналіз та автоматична диференціація. Він постачався з великою кількістю компільованого та корисного коду, починаючи від аналізатора виразів до обгортки Lapack. Код все ще доступний тут: http://www.informit.com/store/scientist-and-engineering-c-plus-plus-an-introduction-9780201533934. На жаль, книги стали трохи застарілими за стилем та особливостями C ++, однак це було неймовірною екскурсією на той час (1994, перед STL). Глави про успадкування динаміки є трохи складними для розуміння та не дуже корисними. Оновлена версія цієї класичної книги, яка включає семантику руху та уроки, отримані в STL, буде дуже приємною.