Jump to ratings and reviews
Rate this book

API Design for C++

Rate this book
Designed for Junior/Senior undergraduate courses.This revision of a classical text is intended to acquaint the reader, who has no prior knowledge of the subject, with the theory of x-ray diffraction, the experimental methods involved, and the main applications. The text is a collection of principles and methods designed directly for the student and not a reference tool for the advanced reader.

654 pages, Kindle Edition

First published January 1, 1996

32 people are currently reading
180 people want to read

About the author

Martin Reddy

4 books1 follower

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
58 (38%)
4 stars
57 (37%)
3 stars
28 (18%)
2 stars
6 (3%)
1 star
2 (1%)
Displaying 1 - 14 of 14 reviews
204 reviews
October 14, 2011
5/10

I learned almost nothing from this, maybe the inevitable consequence of spending so much of my life at this game. You just can never tell until you've been through it.

A useful compendium of best practices for any novice though. Succinct, well organised and competently written. But oh how I wish for something of the quality of a Jon Bentley or a Herb Sutter.



This entire review has been hidden because of spoilers.
Profile Image for Ondrej Sykora.
Author 4 books15 followers
April 21, 2014
In practice, this is more a book of good development practices, a bit like Code Complete, but more concise and slightly directed towards public API development.

I didn't learn anything new, but it's a nice compilation and might be worth for beginners.
69 reviews
January 26, 2019
I haven't read this book cover to cover as I was already familiar with some of the concepts, like the design patterns.
But being primarily a developer for C APIs, I found this book immensely useful when given the task to design a C++ API. Accidentally breaking backward compatibility is probably the biggest nightmare of any SDK developer, and this book extensively covers what you need to do to avoid it.
I didn't know the ABI compatibility is so fragile in C++, and I'm sure the book has saved me a lot of headaches. After reading it I really understand why some people choose to expose their API in C even though what's underneath is full C++.
165 reviews
April 3, 2020
There are a lot of good ideas in this book, though I feel the author is more mistrusting of the users of his APIs than I tend to be.
10 reviews
February 11, 2022
This book discussed many topics in programming in general and C++.
1 review
December 30, 2015
This is a really easy read. Nothing complicated, just good advices. Most of them things that I've been implementing, or already knew. But it's always interesting to reinforce our knowledge. I feel it's a book that all software engineers should read. The world would be a better place if they followed the advice herein.

The only thing I would say is arguable is the treatment of copy-on-write (COW). The opinion expressed by this author doesn't consider the arguments given by Sutter in "More Exceptional C++" item 16. The dangers of COW in multi-threaded environments.
Profile Image for Frederic.
30 reviews9 followers
August 31, 2014
Good resource for beginners, but I learned almost nothing.
87 reviews5 followers
March 27, 2015
Good book to check C++ related knowledge coverage, to spot a gaps.
Profile Image for Oleg Sych.
36 reviews
September 13, 2015
Great first few chapters with practical advice on C++ API design; rest of the book devolved into high-level rehash of other works, a lot of it out of date.
35 reviews1 follower
January 25, 2016
A must read for any C++ programmer. It basically ensures that the stuff one's suppose to be aware of and know in-depth are still in the attic of the mind. It's definitely one for the shelf.
Profile Image for Ayush Tomar.
1 review
July 21, 2016
Well written and easy to read. Beginners can learn a lot from this book.
Displaying 1 - 14 of 14 reviews

Can't find what you're looking for?

Get help and learn more about the design.