Best New Free Computer IT Training Tutorial Resources

February 28, 2009

9 Documents to Help You Learn and Understand C++

Here are nine C++ learning and reference documents that will help you to better understand and program in the C++ programming language. Several of these are classic documents written by Bjarne Stroustrup, who is the designer and original implementor of C++.

Software Development with C++
 (287 pages, 976 kb)

  1. Getting Started
  2. Testing and Looping
  3. Batches of Data
  4. Application: Grading a class
  5. Pointers and Iterators
  6. Template Programming
  7. Designing classes
  8. Using Inheritance and Templates
  9. When things go wrong
  10. System Design
  11. Using Design Patterns
  12. Odds and Ends: Multithreading, Conversion and Casting, Concepts to Practice
  A. Coding Standards
  B. Glossary
  C. Creating Projects with Visual C++

An Overview of the C++ Programming Language
  (pdf, 23 pages, 83 kb)

"This overview of C++ presents the key design, programming, and language-technical concepts using examples to give the reader a feel for the language. C++ is a general-purpose programming language with a bias towards systems programming that supports efficient low-level computation, data abstraction, object-oriented programming, and generic programming."

Efficiently Coding Communications Protocols in C++  (pdf, 16 pages, 131 kb)

"Efficient coding could have two meanings. First efficient coding could refer to making the best use of a developer’s time when coding and debugging and embedded application. Second efficient coding could refer to developing code that has high performance using the minimum of processor and memory resources when executing. This paper I will show how using C++ classes to implement a communications protocol can improve the developer’s efficiency then I will discuss some techniques for improving the execution efficiency."

A C++ Tutorial, by Bjarne Stroustrup  (pdf, 21 pages, (pdf, 23 pages, 1.3 mb)

"This is a tutorial introduction to the C++ programming language. With few exceptions, C++ is a superset of the C programming language. After the introduction, abot a third of the text present the more conventional features of C++: basic types, declarations, expressions, statements, and functions. The remainder concentrates on C++'s facilities for data abstraction: user-defined types, data-hiding, user-defined operators, and hierarchies of user-defined types. Finally there are a few comments on program structure, compatibility with C, efficiency and a caveat."

The C++ Programming Language - Reference Manual, , by Bjarne Stroustrup  (pdf, 61 pages, 4.1 mb)

"C++ is C extended with classes, inline functions, operator overloading, function name overloading, constant types, references, free store management, function argument checking, and a new function definition syntax. ... The differences between C++ and C are summarized."

A Set of C++ Classes for Co-Routine Style Programming, by Bjarne Stroustrup  (pdf, 19 pages, 1.3 mb)

"This document described C++ classes for a range of styles and multi-programming techniques in a single language, single address-space environment. Class 'task' is a base class for representation of an activity ina multi-programmed system. A task can be suspended and resume without interfering with its internal state. Class 'qhead' and class 'qtail' enable a wide range of message passing and data buffering schemes to be implemented simply."

Evolving a Language In and for the Real World: C++ , by Bjarne Stroustrup  (pdf, 59 pages, 674 kb)

"This paper outlines the history of the C++ programming language form the early days of is ISO standardization (1991), through the 1998 ISO standard, to the later stages of the C++0x revision of that standard (2006). The emphasis is on the ideals, constraints, programming techniques, and people that shaped the language, rather than the minutiae of language features. Among the major themes are the emergence of generic programming and the STL (the C++ standard library's algorithms and containers). Specific topics include separate compilation of templates, exception handling, and support or embedded systems programming."

Library Manual. Select Code 307-145, C++ Language System, Release 2.0  (pdf, 226 pages, 10.4 mb)

1. Complex Arithmetic in C++. Based on paper by Leonnie V. Rose and Bjarne Stroustrup.
2. The Task Library. Based on these papers:

  • Bjarne Stroustrup and Jonathan Shopiro. A Set of C++ Classes for Co-routine Style Programming, Proceedings of the USENIX C++ Workshop, November 1987.
  • Jonathan Shopiro. Extending the C++ Class System for Real-Time Control.
  • Stacey Keenan. A Porting Guide for the C++ Coroutine Library.
3. Iostream Examples. Based on paper by Jerry Schwarz.

Selected Readings. Select Code 307-144, C++ Language System, Release 2.0 (pdf, 224 pages, 9.5 mb)

1. Evolution of C++: 1985 to 1989. Based on paper by Bjarne Stroustrup.
2. An Introduction to C++. Based on paper by Keith Gorlen.
3. An Overview of C++. Based on paper by Bjarne Stroustrup, published in ACM SIGPLAN Notices, October 1986, pages 7-18.
4. Object-Oriented Programming. Based on paper by Bjarne Stroustrup: What is Object-Oriented Programming?, published in IEEE Software magazine, May 1988, pages 10-20.
5. Multiple Inheritance. Based on paper by Bjarne Stroustrup: Multiple Inheritance for C++, published in Proceedings of the EUUUG Spring Conference, May 1987.
6. Type-Safe Linkage for C++. Based on paper by Bjarne Stroustrup, published in Computing Systems, Volume VI, Number 4, Fall 1988, pages 371-404.
7. Access Rules for C++. Based on a paper by Phil Brown.
Appendix A. Manual pages for C++: CC, c++filt, and demangle.

Tags for this post>>

Filed under: Best New Free Computer IT Training Tutorial Resources — computer_teacher @ 12:15 am

Powered by WordPress