Ален И. Голуб. Верёвка достаточной длины, чтобы... выстрелить себе в ногу. Правила программирования на Си и Си++
272 страницы. Бином, 2001
Allen I. Holub. Enough Rope to Shoot Yourself in the Foot. Rules for C and C++ Programming. McGraw–Hill, 1995
Сборник советов от программиста, консультанта и преподавателя — сначала на общие темы, затем по языку C и, наконец, языку C++. Несмотря на возраст, книгу трудно назвать устаревшей.
Содержание: процесс проектирования, общие проблемы разработки программ, форматирование и документация, имена и идентификаторы, правила программирования, препроцессор, правила, относящиеся к языку C, правила программирования на C++ (проектирование и реализация, проблемы сцепления, ссылки; конструкторы, деструкторы и operator=(); виртуальные функции, перегрузка, управление памятью, шаблоны, исключения).
Высказывание «C позволяет очень просто выстрелить себе в ногу. На C++ сделать это сложнее, но если получится, оторвёт всю ногу» (C makes it easy to shoot yourself in the foot; C++ makes it harder but when you do, it blows away your whole leg) приписывают Бьерну Страуструпу.
Харви Дейтел, Пол Дейтел. Как программировать на 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()).
#include <iostream.h>
main()
{
cout << "Добро пожаловать в C++\n";
return 0;
}