Readers can also learn the concepts of contemporary object-oriented programming without having to first learn all of the intricacies of a procedural language like C. This approach, combined with many small program examples and exercises at the end of each chapter, makes it ideally suited for either classroom use or self-study.