by Allen B. Downey
Download Think C++ in PDF.
The code for this book is in this GitHub repository.
Think C++ is an introduction to programming using the C++ programming language. I originally wrote it to help students prepare for the Computer Science AP exam (when the exam was in C++).
Think C++ is a free textbook available under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. Readers are free to copy and distribute the text; they are also free to modify it, which allows them to adapt the book to different needs, and to help develop new material.
Prof. Thomas Scheffler has translated the book for use with C (rather than C++). His version, with exercises in German, is available here.
This book has also been translated into Chinese.