This document offers an introduction to the bf(C++) programming language. It
is a guide for bf(C/C++) programming courses, yearly presented by Frank at the
University of Groningen. This document is not a complete bf(C/C++) handbook,
as much of the bf(C)-background of bf(C++) is not covered. Other sources
should be referred to for that (e.g., the
hi(http://publications.gbdirect.co.uk/c_book/)
 turl(on-line book)(http://publications.gbdirect.co.uk/c_book/) suggested to
me by George Danchev (danchev at spnet dot net)).

The reader should be forewarned that extensive knowledge of the bf(C)
programming language is actually assumed. The annotations() continue where
topics of the bf(C) programming language end, such as pointers, basic flow
control and the construction of functions.

Some elements of the language, like specific lexical tokens (like
emi(digraphs) (e.g., tt(<:) for tt([), and tt(>:) for tt(]))) are not covered
by the annotations(), as these tokens occur extremely seldom in bf(C++) source
code. In addition, emi(trigraphs) (using tt(??<) for tt({), and tt(??>) for
tt(})) have been removed from bf(C++).

The working draft of the bf(C++) standard is freely available, and can be
cloned from the git-repository at lurl(https://gitlab.com/cplusplus/draft.git)

The version number of the annotations() (currently DOCVERSION) is updated when
the content of the document change. The first number is the major number, and
is probably not going to change for some time: it indicates a major
rewriting. The middle number is increased when new information is added to the
document. The last number only indicates small changes; it is increased when,
e.g., series of typos are corrected.

This document is published by the Center of Information Technology,
University of Groningen,
the Netherlands under the hi(http://www.gnu.org/licenses/)
 turl(GNU General Public License)(http://www.gnu.org/licenses/).

The bf(C++ Annotations) were typeset using the hi(Yodl)
    hi(https://fbb-git.gitlab.io/yodl/)
    turl(yodl)(https://fbb-git.gitlab.io/yodl/)
formatting system.

quote(
    bf(
        All correspondence concerning suggestions, additions, improvements or
        changes to this document should be directed to the author:
    )

    bf(
        center(Frank B. Brokken nl()
        AFFILIATION
        (email: MYEMAIL)
        )
   )
)

In this chapter an overview of bf(C++)'s defining features is presented. A few
extensions to bf(C) are reviewed and the concepts of object based and object
oriented programming (OOP) are briefly introduced.
